WO2016084497A1 - メモリシステム、記憶装置、および、メモリシステムの制御方法 - Google Patents
メモリシステム、記憶装置、および、メモリシステムの制御方法 Download PDFInfo
- Publication number
- WO2016084497A1 WO2016084497A1 PCT/JP2015/078610 JP2015078610W WO2016084497A1 WO 2016084497 A1 WO2016084497 A1 WO 2016084497A1 JP 2015078610 W JP2015078610 W JP 2015078610W WO 2016084497 A1 WO2016084497 A1 WO 2016084497A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- read
- memory
- refresh
- reread
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/5685—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 storage elements comprising metal oxide memory material, e.g. perovskites
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0054—Read is performed on a reference element, e.g. cell, and the reference sensed value is used to compare the sensed value of the selected cell
Definitions
- the present technology relates to a memory system, a storage device, and a memory system control method. Specifically, the present invention relates to a memory system, a storage device, and a memory system control method for detecting an error in read data.
- a non-volatile memory may be used as an auxiliary storage device or storage.
- This non-volatile memory is broadly divided into flash memory that supports data access in units of large size and non-volatile random access memory (NVRAM: Non-Volatile RAM) that allows high-speed random access in small units.
- NVRAM Non-Volatile random access memory
- examples of the nonvolatile random access memory include ReRAM (Resistive RAM), PCRAM (Phase-Change RAM), MRAM (Magnetoresistive RAM), and the like.
- the above-mentioned conventional memory controller detects an error, but does not distinguish between error types such as an RTN error and an RD error. Therefore, in the conventional system, the memory cell is refreshed every time an error occurs regardless of the type of error. However, refresh may not be necessary depending on the type of error. For example, an RTN error is a primary change in state and recovers spontaneously, so there is little need to refresh the memory cell in which the error occurred. Even in such a case, if refreshing is performed, there is a possibility that deterioration of the memory cell may proceed due to unnecessary rewriting.
- This technology has been created in view of such a situation, and aims to suppress deterioration of memory cells in a nonvolatile memory.
- a first aspect of the present technology is a read process for performing a read process of reading read data from each of a plurality of memory cells with a first threshold as a reference.
- An error detection unit that detects presence or absence of an error in the read data and identifies the erroneous memory cell among the plurality of memory cells, and a second threshold value different from the first threshold value.
- a reread processing unit that performs a reread process for reading data from the specified memory cell as reread data, and a memory cell in which the value of the reread data is different from the read data among the specified memory cells.
- a memory system including a refresh processing unit for performing rewriting of data to reread data as refresh processing, and a control method thereof That. This brings about the effect that the refresh process is performed on the memory cell whose reread data value is different from that of the read data.
- the first aspect further includes a refresh control unit that causes the reread unit to execute the reread processing on a memory cell in which the error of a predetermined pattern among the specified memory cells occurs. May be. As a result, the reread process is performed in the memory cell in which the error of the predetermined pattern has occurred.
- the first aspect further includes an address holding unit that holds an address assigned to the erroneous memory cell, and the refresh control unit holds the address when a predetermined condition is satisfied.
- the read address may be read out, the address specified, and the read processor may execute the read process. As a result, the read processing is executed at the held address.
- the predetermined condition may be that the number of the held addresses exceeds a predetermined number.
- the read processing is performed when the number of held addresses exceeds a predetermined number.
- the predetermined condition may be that the refresh control unit has received a refresh command instructing execution of the refresh process. As a result, when the refresh command is received, the read process is performed.
- the plurality of memory cells are divided into a plurality of sections each of which is assigned one of the plurality of addresses, and the refresh control unit performs a refresh process for performing the refresh process.
- each of the plurality of addresses may be specified in order to cause the read processing unit to execute the read processing.
- each of the plurality of addresses is sequentially specified and the read process is executed.
- the refresh control unit generates the error of the predetermined pattern among the specified memory cells when the number of errors of the predetermined pattern exceeds an allowable value.
- the reread processing may be performed on the memory cell by the reread unit. Thereby, when the number of errors of the predetermined pattern exceeds the allowable value, the reread process is performed.
- each of the plurality of memory cells holds data including a plurality of bits
- each of the first and second thresholds includes a plurality of thresholds. Good.
- data including a plurality of bits is held in each memory cell.
- the characteristic value of the memory cell changes in a specific direction every time data is read, and the second threshold value is changed from the first threshold value to the specific direction. It may be a value. This brings about the effect that the value changed from the first threshold value in the specific direction is set as the second threshold value.
- a read processing unit that performs a read process of reading read data from each of the plurality of memory cells with a first threshold as a reference, and a second threshold different from the first threshold
- a reread processing unit for performing reread processing for reading data from each of the memory cells having an error in the read data as reread data, and the reread data of the memory cells having an error in the read data.
- the memory device includes a refresh processing unit that performs rewriting of data to the reread data as a refresh process for a memory cell having a value different from that of the read data.
- the present technology it is possible to obtain an excellent effect that the deterioration of the memory cell in the nonvolatile memory can be suppressed.
- the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
- FIG. 1 is an overall view showing a configuration example of a memory system according to a first embodiment.
- 3 is a block diagram illustrating a configuration example of a memory controller according to the first embodiment.
- FIG. 3 is a block diagram illustrating a functional configuration example of a memory controller according to the first embodiment.
- FIG. It is a block diagram showing an example of 1 composition of nonvolatile memory in a 1st embodiment.
- FIG. 3 is a block diagram illustrating a configuration example of a memory control unit according to the first embodiment. It is a table
- FIG. 6 is a diagram illustrating an example of read data and a bit select signal in the first embodiment.
- FIG. 3 is a flowchart illustrating an example of a storage operation according to the first embodiment.
- 4 is a flowchart illustrating an example of a controller-side read / refresh process according to the first embodiment.
- 3 is a flowchart illustrating an example of a memory-side read / refresh process according to the first embodiment.
- FIG. 6 is a sequence diagram illustrating an example of a storage operation according to the first embodiment.
- It is a block diagram which shows the function structural example of the memory controller in 2nd Embodiment. 10 is a flowchart illustrating an example of a storage operation according to the second embodiment. It is a flowchart which shows an example of the controller side read process in 2nd Embodiment. It is a flowchart which shows an example of the controller side refresh process in 2nd Embodiment. It is a block diagram which shows the function structural example of the memory controller in 3rd Embodiment. 14 is a flowchart illustrating an example of storage operation according to the third embodiment. It is a flowchart which shows an example of the controller side read process in 3rd Embodiment.
- First embodiment (example of re-reading and refreshing with different threshold values) 2.
- Second Embodiment (Example of Rereading by Changing the Threshold from the Stored Address and Refreshing) 3.
- Third Embodiment (Example in which refresh is performed by changing the threshold value in the refresh mode and refreshing) 4).
- Fourth Embodiment (Example in which when the number of errors in a certain pattern is large, the threshold is changed and reread is performed and refresh is performed) 5.
- Fifth Embodiment (Example in which a threshold value is changed and reread is performed in a multilevel memory cell and refreshed)
- FIG. 1 is a block diagram illustrating a configuration example of the memory system according to the first embodiment.
- This memory system includes a host computer 100 and a storage 200.
- the host computer 100 controls the entire memory system. Specifically, the host computer 100 generates commands and data and supplies them to the storage 200 via signal lines 108 and 109. Further, the host computer 100 receives the read data from the storage 200 via the signal line 109.
- the command is for controlling the storage 200 and includes, for example, a write command for instructing data writing and a read command for instructing data reading.
- the storage 200 includes a memory controller 300 and a nonvolatile memory 400.
- the memory controller 300 controls the nonvolatile memory 400.
- ECC error detection and correction code
- the memory controller 300 converts (that is, encodes) data into a code word composed of the data and parity.
- the memory controller 300 writes the encoded data by accessing the nonvolatile memory 400 via the signal lines 308 and 309.
- the memory controller 300 accesses the nonvolatile memory 400 via the signal line 308 and reads the encoded data via the signal line 309. Then, the memory controller 300 converts (that is, decodes) the encoded data into original data before encoding. The memory controller 300 detects and corrects errors in the data based on the ECC. The memory controller 300 supplies the corrected data to the host computer 100.
- the non-volatile memory 400 stores data according to the control of the memory controller 300.
- ReRAM is used as the nonvolatile memory 400.
- the nonvolatile memory 400 includes a plurality of memory cells, and these memory cells are divided into a plurality of blocks.
- the block is an access unit of the nonvolatile memory 400 and is also called a word.
- Each block is assigned a physical address.
- ReRAM NAND-type or NOR-type flash memory, PCRAM, MRAM, STT-RAM (Spin-Transfer-Torque-RAM), or the like may be used as the nonvolatile memory 400.
- the nonvolatile memory 400 is an example of a storage device described in the claims.
- FIG. 2 is a block diagram illustrating a configuration example of the memory controller 300 according to the first embodiment.
- the memory controller 300 includes a RAM (Random Access Memory) 302, a CPU (Central Processing Unit) 303, an ECC processing unit 304, and a ROM (Read Only Memory) 305.
- the memory controller 300 includes a host interface 301, a bus 306, and a memory interface 307.
- the RAM 302 temporarily holds data necessary for processing executed by the CPU 303.
- the CPU 303 controls the entire memory controller 300.
- the ROM 305 stores programs executed by the CPU 303.
- the host interface 301 exchanges data with the host computer 100.
- a bus 306 is a common path for the RAM 302, the CPU 303, the ECC processing unit 304, the ROM 305, the host interface 301, and the memory interface 307 to exchange data with each other.
- the memory interface 307 exchanges data with the nonvolatile memory 400.
- the ECC processing unit 304 encodes data to be encoded, and decodes the encoded data. In data encoding, the ECC processing unit 304 encodes data in a predetermined unit by adding parity to the data to be encoded. Then, the ECC processing unit 304 supplies the encoded data as write data to the nonvolatile memory 400 via the bus 306.
- the ECC processing unit 304 decodes the encoded read data into the original data. In this decoding, the ECC processing unit 304 uses the parity to detect and correct an error in the read data. The ECC processing unit 304 supplies the decrypted original data to the host computer 100 via the bus 306.
- FIG. 3 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the first embodiment.
- the memory controller 300 includes a write control unit 310, a read control unit 320, an ECC processing unit 304, and a refresh control unit 330.
- the write control unit 310 in FIG. 3 is realized by the RAM 302, the CPU 303, the ROM 305, the host interface 301, the bus 306, the memory interface 307, and the like in FIG. The same applies to the read control unit 320 and the refresh control unit 330.
- the write control unit 310 causes write data to be written in the nonvolatile memory 400 in accordance with a write command.
- the write control unit 310 converts a logical address designated by the write command into a physical address.
- the logical address is an address allocated for each access unit area when the host computer 100 accesses the storage 200 in the address space defined by the host computer 100.
- the physical address is an address assigned for each access unit in the nonvolatile memory 400 as described above.
- the write control unit 310 divides the write command when the access units of the host computer 100 and the nonvolatile memory 400 are different.
- the write control unit 310 logically converts the address, and supplies each of the write commands divided as necessary to the nonvolatile memory as a write request.
- the read control unit 320 causes the nonvolatile memory 400 to read the read data in accordance with the read command.
- the read control unit 320 logically converts the address of the read command and supplies each read command divided as necessary to the nonvolatile memory as a read request.
- the read control unit 320 supplies the converted physical address to the refresh control unit 330.
- the ECC processing unit 304 When the ECC processing unit 304 receives data as encoding target data from the host computer 100, the ECC processing unit 304 encodes the encoding target data into a code word. In encoding, the data to be encoded is encoded into a binary BCH code, for example. The ECC processing unit 304 supplies the code word to the nonvolatile memory 400 as write data.
- the ECC processing unit 304 encodes the data to be encoded into a binary BCH code, but it may be encoded into a code other than the BCH code as long as the code has error correction capability.
- the ECC processing unit 304 may encode, for example, an RS (Reed-Solomon) code or a convolutional code. Further, the ECC processing unit 304 may encode the code into a higher-order code.
- the ECC processing unit 304 decodes the received word.
- the ECC processing unit 304 supplies the decoded data to the host computer 100 and the refresh control unit 330 as decoded data.
- the parity is removed from the decoded data supplied to the host computer 100.
- the ECC processing unit 304 is an example of an error detection unit described in the claims.
- the refresh control unit 330 causes the nonvolatile memory 400 to rewrite data for the memory cell in which an error has occurred.
- the refresh control unit 330 receives read data before decoding from the nonvolatile memory 400 and receives decoded data from the ECC processing unit 304.
- the refresh control unit 330 compares the read data and the decoded data to obtain a corrected error number (correction number), and issues a refresh request when the error number is equal to or greater than a predetermined allowable value N.
- This refresh request is a request for requesting data rewriting by specifying a physical address from which read data is read.
- the refresh control unit 330 specifies a memory cell in which an error of a predetermined pattern has occurred, and generates a bit select signal for selecting the memory cell as a rewrite target. For example, when the fourth and eighth from the top of the eight memory cells corresponding to a word are to be rewritten, a bit select signal having a value of “0x11” (binary number “b00010001”) is generated.
- the memory cells of the nonvolatile memory 400 are binary memory cells each holding a logical value “0” or a logical value “1”.
- Examples of patterns of errors that occur in the binary memory cell include a pattern in which “0” is inverted to “1” and a pattern in which “1” is inverted to “0”.
- the characteristic value for example, resistance value
- the resistance value changes from the low resistance side to the high resistance side as RD progresses.
- the refresh control unit 330 identifies the memory cell in which “1” is inverted to “0”, and generates a bit select signal for selecting the memory cell.
- the refresh control unit 330 supplies the issued refresh request and the generated bit select signal to the nonvolatile memory 400.
- the refresh control unit 330 issues a refresh request when the number of corrections is N or more, but may issue a refresh request when an error is detected regardless of the number of corrections. However, in the configuration in which a refresh request is issued each time even one error is detected, the access efficiency may be reduced. Therefore, the refresh control unit 330 may issue a refresh request when the number of corrections is N or more. desirable.
- the refresh control unit 330 rewrites only a memory cell in which an error of a pattern in which an RD error is assumed (such as a pattern in which “1” is inverted to “0”) occurs, but is not limited to this configuration.
- the refresh control unit 330 may generate a bit select signal for rewriting all memory cells in which an error has occurred. However, if all the memory cells in which an error has occurred are to be rewritten, the data is rewritten in the memory cell corresponding to the error that is not the RD error, and deterioration proceeds. For this reason, it is desirable that only a memory cell in which an error of a pattern in which an RD error is assumed occurs is to be rewritten.
- FIG. 4 is a block diagram illustrating a configuration example of the nonvolatile memory according to the first embodiment.
- the nonvolatile memory 400 includes a data buffer 410, a memory cell array 420, a driver 430, an address decoder 440, a bus 450, a control interface 460, and a memory control unit 470.
- the data buffer 410 holds write data and read data in units of access under the control of the memory control unit 470.
- the memory cell array 420 includes a plurality of memory cells arranged in a matrix. Nonvolatile memory elements are used as these memory cells. Specifically, NAND-type or NOR-type flash memory, ReRAM, PCRAM, STT-RAM, MRAM, or the like is used as a storage element.
- the access unit of the nonvolatile memory 400 is, for example, a word consisting of 8 bits. For example, when 8 ⁇ 256 memory cells are provided in the memory cell array 420, data of 256 words is held. Each of these words is assigned a physical address.
- the driver 430 writes data to or reads data from the memory cell selected by the address decoder 440.
- the driver 430 writes “1” or “0” by applying one of two voltage pulses having different polarities to the memory cell.
- the operation of writing “1” is defined as “set”, and the voltage pulse at that time is referred to as “set pulse”.
- the operation of writing “0” is defined as “reset”, and the voltage pulse at that time is referred to as “reset pulse”.
- the driver 430 In reading data, the driver 430 applies a current pulse to the memory cell, and compares the voltage generated between the electrodes of the memory cell with a predetermined reference voltage Vref . The driver 430 reads this comparison result as a read data value. This operation is defined as “sense”, and the current pulse at that time is hereinafter referred to as “sense pulse”.
- the driver 430 can select, reset, or sense only the memory cell by selecting a memory cell in bit units according to the control of the memory control unit 470 in each of set, reset, and sense.
- the address decoder 440 analyzes the address specified by the request and selects a memory cell corresponding to the address. For example, when an address of “0x0F” (decimal number 15) is analyzed, 8 memory cells corresponding to the 16th address from the head are selected from 256 addresses.
- the bus 450 is a common path for the data buffer 410, the memory cell array 420, the address decoder 440, the memory control unit 470, and the control interface 460 to exchange data with each other.
- the control interface 460 is an interface for the memory controller 300 and the nonvolatile memory 400 to exchange data with each other.
- the memory control unit 470 controls the driver 430 and the address decoder 440 to write or read data.
- FIG. 5 is a block diagram illustrating a configuration example of the memory control unit 470 according to the first embodiment.
- the memory control unit 470 includes a request decoder 471, a write processing unit 472, a read processing unit 473, a reread processing unit 474, and a refresh processing unit 475.
- the request decoder 471 interprets (decodes) a request from the memory controller 300.
- the request decoder 471 supplies the write request decoding result to the write processing unit 472 and supplies the read request decoding result to the read processing unit 473.
- the request decoder 471 supplies the refresh request decoding result to the reread processing unit 474.
- the write processing unit 472 controls the driver 430 and the address decoder 440 to write data.
- the write processing unit 472 supplies a control signal for instructing address decoding to the address decoder 440.
- the write processing unit 472 supplies the driver 430 with a bit select signal for selecting all bits and a sense signal for instructing sensing. Note that the control signal to the address decoder 440 and the bit select signal to the driver 430 are omitted in FIG.
- the driver 430 reads data written at the address specified by the request as pre-read data in accordance with the sense signal and the bit select signal.
- the write processing unit 472 compares the write data with the pre-read data in bit units, and sets “1” in the write data and “0” in the pre-read data as a set target.
- the write processing unit 472 supplies the driver 430 with a bit select signal indicating the set target bit and a set signal instructing the set.
- the write processing unit 472 compares the write data with the pre-read data after the set processing in units of bits, and resets the bit of “0” in the write data and “1” in the pre-read data And
- the write processing unit 472 supplies the driver 430 with a bit select signal indicating the reset target bit and a reset signal instructing the reset.
- Driver 430 writes data in accordance with a bit select signal, a set signal, and a reset signal.
- the read processing unit 473 controls the driver 430 and the address decoder 440 to read data.
- the read processing unit 473 supplies a control signal instructing address decoding to the address decoder 440. Further, the read processing unit 473 sets the reference voltage V ref to V ref1 and supplies a sense signal and a bit select signal to the driver 430. In this bit select signal, all memory cells are selected, and for example, “1” is set in all bits of the bit select signal.
- the reread processing unit 474 controls the driver 430 and the address decoder 440 to read data again.
- the re-read processing unit 474 supplies a control signal for instructing address decoding to the address decoder 440.
- the reread processing unit 474 sets V ref2 to the reference voltage V ref and supplies a sense signal to the driver 430.
- a bit select signal from the memory controller 300 is transferred to the driver 430.
- Driver 430 reads data as reread data in accordance with the sense signal and the bit select signal. No sense pulse is applied to memory cells that are not selected by the bit select signal.
- the reference resistance value corresponding to the reference voltage V ref1 when reading the read data is R ref1
- the reference resistance value corresponding to the reference voltage V ref2 when reading the re-read data is R ref 2. If the resistance value of the memory cell increases with the progress of RD is, R ref2 is higher than R ref1, R difference ref1 and R ref2 are one to be greater than the amount of change in the resistance value by the read V ref1 and V ref2 are set.
- the reference resistance value R ref1 is an example of a first threshold value recited in the claims
- the reference resistance value R ref2 is an example of a second threshold value recited in the claims.
- the reread processing unit 474 compares the reread data and the bit select signal in bit units, and corrects the bit select signal based on the comparison result.
- the bits having the same value as the read data among the bits to be rewritten by the bit select signal are excluded from the objects to be rewritten. For example, if only the memory cell in which “1” is inverted to “0” is the target of rewriting with the bit select signal, the “0” bit in the reread data is the same as the value of the read data. Excluded from the target.
- the reread processing unit 474 supplies the corrected bit select signal to the driver 430 as a corrected bit select signal, and notifies the refresh processing unit 475 that the reread data has been read. By this modified bit select signal, only memory cells having different values in the read data and reread data are rewritten.
- the refresh processing unit 475 controls the driver 430 to rewrite data.
- the refresh processing unit 475 When the reread data is read, the refresh processing unit 475 generates one of a set signal and a reset signal and supplies it to the driver 430. For example, when a memory cell in which “1” is inverted to “0” is to be rewritten with a bit select signal, a set signal is generated.
- FIG. 6 is a table showing an operation example of the nonvolatile memory 400 for each request in the first embodiment.
- the non-volatile memory 400 sequentially performs setting and resetting to write the write data to the memory cell.
- the nonvolatile memory 400 reads the read data based on the reference voltage V ref1 and outputs the read data to the memory controller 300.
- the nonvolatile memory 400 reads the reread data with reference to the reference voltage Vref2 , and sets only the bit whose read value is “1”.
- FIG. 7 is a diagram illustrating an example of the resistance distribution of the memory cell before RD occurs, that is, immediately after rewriting, in the first embodiment.
- the vertical axis in the figure is the number of memory cells, and the horizontal axis is the resistance value.
- R ref1 resistance threshold value
- the resistance distribution is divided into two with a resistance threshold value (R ref1 or the like) as a boundary. These distributions are referred to as a low-resistance state (LRS) and a high-resistance state (HRS). For example, a logical value “1” is assigned to the LRS, and “0” is assigned to the HRS.
- LRS low-resistance state
- HRS high-resistance state
- FIG. 8 is a diagram illustrating an example of the resistance distribution of the memory cell after repeating the reading in the first embodiment.
- the vertical axis in the figure is the number of memory cells, and the horizontal axis is the resistance value.
- a dotted curve in the figure shows the state of the memory cell immediately after rewriting
- a solid curve shows the state of the memory cell that has changed due to repeated reading by the sense signal.
- RD Due to the RD, the right skirt of the solid curve exceeds the threshold (R ref1 ), and as a result, an RD error in which “0” is read from the bit in which “1” is written occurs.
- the hatched portion in the figure is a portion where an RD error occurs.
- FIG. 9 is a diagram illustrating an example of a change in resistance value with an increase in the number of readings according to the first embodiment.
- the vertical axis represents the resistance value
- the horizontal axis represents the number of readings.
- a case where “1” corresponding to LRS is written in a certain memory cell is considered.
- the resistance value is lower than the reference resistance value R ref1 and the value “1” is normally read.
- the resistance value increases discontinuously due to RTN.
- an RTN error occurs in which the value “0” corresponding to the HRS is erroneously read.
- the memory controller 300 detects an error from the m-th read data and issues a refresh request, and the nonvolatile memory 400 changes the reference resistance value to R ref2 and performs m + 1-th re-reading. Since the RTN error is not resolved until a certain amount of time has elapsed, the read value does not change even if the reference resistance value is changed, and the value “0” is read again. In this case, since the values of the read data and the reread data are the same, the memory cell is not refreshed.
- the memory controller 300 detects an error from the nth read data
- the memory controller 300 issues a refresh request to eliminate the error
- the nonvolatile memory 400 changes the reference resistance value to R ref2 to change the n + 1th time. Is read again.
- the resistance value slightly increases due to RD, but R ref2 is set so that the difference between R ref1 and R ref2 is larger than the amount of increase, and thus does not exceed R ref2 . Therefore, the correct logical value “1” is read at the (n + 1) th time.
- the nonvolatile memory 400 applies a set pulse to the memory cell because “1” is read at the (n + 1) th time.
- the resistance value of the memory cell is lower than R ref1, so the correct logic value is read by both of the reference resistance value R ref1 and R ref2.
- the RD error can be recovered by reapplying the set pulse.
- the RTN error is a temporary change in state, and is recovered spontaneously, so there is no need to perform refresh by reapplying the set pulse (or reset pulse).
- the set pulse or reset pulse.
- refresh is performed by reapplying a set pulse when the m-th RTN error occurs, excessive setting is performed in the high-resistance memory cell even though the effect of RTN disappears when reapplying. A pulse is applied, and the cell characteristics deteriorate. For this reason, in a memory system such as Patent Document 2 in which refreshing is also performed for an RTN error, there is a possibility that the deterioration of the memory cell progresses due to unnecessary refreshing and the life of the nonvolatile memory 400 is shortened.
- the nonvolatile memory 400 refreshes in the case of an RD error, but does not refresh in the case of an RTN error, so that deterioration of the memory cell can be suppressed.
- FIG. 10 is a diagram illustrating an example of read data and a bit select signal in the first embodiment.
- a is an example of read data read by the reference voltage Vref1 .
- This read data includes a bit string of “b11100000”, for example.
- b in the figure is an example of decoded data.
- This decoded data includes a bit string of “b11100011”, for example.
- C in FIG. 10 is an example of a bit select signal.
- the bit select signal “0” indicates a bit not to be rewritten, and “1” indicates a bit to be rewritten by setting. From the results of a and b in the figure, a bit select signal including “b0000011” designating the seventh bit and the eighth bit where an RD error or an RTN error is assumed is generated.
- the nonvolatile memory 400 selects the seventh bit and the eighth bit according to the bit select signal, and reads the reread data on the basis of the reference resistance value R ref2 .
- D in FIG. 10 is an example of re-read data.
- “ ⁇ ” indicates a bit to which no sense pulse is applied.
- the seventh bit of the reread data is “0” and the eighth bit is “1”.
- the value of the 7th bit cell is the same as that of the read data, but the value of the 8th bit is different.
- the 7th bit error is an RTN error and the 8th bit error is an RD error. Therefore, the nonvolatile memory 400 corrects the bit select signal so that the seventh bit corresponding to the RTN error is not subject to rewriting.
- E in the figure is an example of a modified bit select signal. In this modified bit select signal, the seventh bit out of the seventh bit and the eighth bit in which an error is detected is corrected to “0”. As a result, the memory cell of the 8th bit is refreshed by setting.
- FIG. 11 is a flowchart illustrating an example of the operation of the storage 200 according to the first embodiment. This operation starts, for example, when the storage 200 is turned on or when the host computer 100 instructs the initialization.
- the memory controller 300 initializes the nonvolatile memory 400 (step S901). Further, the memory controller 300 decodes a command from the host computer 100 (step S902). When the command is a write command (step S903: Yes), the memory controller 300 issues a write request according to the write command (step S904). Further, the nonvolatile memory 400 writes the write data to the memory cell in accordance with the write request (step S905).
- step S903 when the access command is a read command (step S903: No), the memory controller 300 executes a controller-side read / refresh process (step S910). Further, the nonvolatile memory 400 executes a memory side read / refresh process (step S920). After step S905 or after both steps S910 and S920 are completed, the storage 200 returns to step S902.
- FIG. 12 is a flowchart illustrating an example of the controller-side read / refresh process according to the first embodiment.
- the memory controller 300 issues a read request (step S911), and when the read data is read, the data is decoded (step S912). If the number of errors is less than the error correction capability of ECC, decoding is successful.
- the memory controller 300 determines whether or not the decoding is successful (step S913). If the decoding is successful (step S913: Yes), the memory controller 300 outputs the decoded data to the host computer 100 (step S914), and determines whether or not the number of corrections is N or more (step S915). On the other hand, when the decryption fails (step S913: No), the memory controller 300 outputs a read error to the host computer 100 (step S917).
- step S915: Yes When the number of corrections is greater than or equal to N (step S915: Yes), the memory controller 300 generates a bit select signal for rewriting a memory cell in which a predetermined pattern error has occurred, and issues a refresh request ( Step S916).
- step S915: No When the number of corrections is less than N (step S915: No), or after step S916 or after step S917, the memory controller ends the controller-side read / refresh process.
- FIG. 13 is a flowchart illustrating an example of the memory-side read / refresh process in the first embodiment.
- the nonvolatile memory 400 reads the read data based on the reference voltage V ref1 according to the read request (step S921).
- the nonvolatile memory 400 determines whether or not a refresh request has been received from the memory controller 300 within a certain period (step S922).
- the refresh request is received (step S922: Yes)
- the nonvolatile memory 400 reads the reread data based on the reference voltage Vref2 according to the request (step S923).
- the nonvolatile memory 400 corrects the bit select signal so that only memory cells having different values of reread data and read data are to be rewritten (step S924).
- the nonvolatile memory 400 performs a set operation for the memory cell indicated by the modified bit select signal (step S925).
- step S922 when the refresh request is not received (step S922: No), or after step S925, the nonvolatile memory 400 ends the memory-side read / refresh process.
- FIG. 14 is a sequence diagram illustrating an example of the operation of the storage 200 according to the first embodiment.
- the nonvolatile memory 400 reads the read data based on the reference voltage V ref1 in accordance with the request (step S921).
- the memory controller 300 decodes the read data (step S912), and if the number of errors is N or more, transmits a refresh request and a bit select signal to the nonvolatile memory 400.
- the nonvolatile memory 400 reads the reread data based on the reference voltage Vref2 according to the refresh request and the bit select signal (step S923). Then, the non-volatile memory 400 modifies the bit select signal so that only the bits having different reread data and read data values are to be rewritten (step S924), and the rewrite target is refreshed by setting (step S925). .
- the memory cells having different values of the read data based on the first threshold and the reread data based on the second threshold are refreshed.
- the memory cells having the same value can be refreshed except for them. This eliminates unnecessary refresh for memory cells that are likely to have an RTN error, so that the progress of deterioration of the memory cells can be suppressed.
- the memory controller 300 performs refreshing at the address every time the number of errors exceeds a predetermined allowable value in the read process.
- the non-volatile memory 400 cannot execute another request. Therefore, if the refresh process is performed each time an error is detected, the access speed may decrease. For this reason, it is desirable that the memory controller 300 suppresses the issue of refresh requests until a certain condition is satisfied, and issues a write request or a read request with priority. Examples of the fixed condition include that the host computer 100 has instructed refreshing and that the number of addresses to be refreshed exceeds a predetermined number.
- the memory controller 300 of the second embodiment is different from the first embodiment in that a refresh request is issued when a certain condition is satisfied.
- FIG. 15 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the second embodiment.
- the memory controller 300 according to the second embodiment includes a read control unit 321 and a refresh control unit 331 instead of the read control unit 320 and the refresh control unit 330, and further includes an address register 340. And different.
- the read control unit 321 receives the read data and the decoded data from the ECC processing unit 304 and causes the address register 340 to hold the address each time an error equal to or greater than the allowable value N is detected.
- the address register 340 holds a plurality of addresses.
- the address register 340 is an example of an address holding unit described in the claims.
- the refresh control unit 331 when the refresh control unit 331 receives a refresh command from the host computer 100, the refresh control unit 331 issues a read request by sequentially specifying the addresses held in the address register 340. Alternatively, when the number of addresses held in the address register 340 becomes M (M is an integer) or more, the refresh control unit 331 issues a read request by designating those addresses in order. If the number of corrections is N or more, the refresh control unit 332 supplies a refresh request and a bit select signal to the nonvolatile memory 400.
- the host computer 100 issues a refresh command when the access frequency drops below a certain level, for example.
- FIG. 16 is a flowchart illustrating an example of the operation of the storage 200 according to the second embodiment.
- the memory controller 300 decodes the command after initialization of the nonvolatile memory 400 (step S901) (step S902).
- the memory controller 300 determines whether or not the command is a write command (step S903), and if it is a write command (step S903: Yes), executes steps S904 and S905.
- step S903 when the command is not a write command (step S903: No), the memory controller 300 determines whether the command is a read command (step S906). If it is a read command (step S906: Yes), the memory controller 300 executes a controller-side read process (step S930). The nonvolatile memory 400 reads the read data based on V ref1 according to the write request (step S921).
- the nonvolatile memory 400 determines whether or not the number of addresses held in the address register is M or more (step S907).
- step S906 If the command is a refresh command (step S906: No), or if the number of addresses is M or more (step S907: Yes), the memory controller 300 executes a controller-side refresh process (step S940). Further, the nonvolatile memory 400 executes a memory side read / refresh process (step S920). When the number of addresses is less than M (step S907: No), or after both steps S940 and S920 are completed, the storage 200 returns to step S902.
- FIG. 17 is a flowchart illustrating an example of the controller-side read process according to the second embodiment.
- the controller-side read process is the same as the controller-side read / refresh process illustrated in FIG. 12 except that step S931 is executed instead of step S916.
- step S915: Yes the memory controller 300 holds the address specified by the read request in the address register 340 (step S931).
- FIG. 18 is a flowchart illustrating an example of the controller-side refresh process according to the second embodiment.
- the memory controller 300 extracts one of the addresses from the address register 340 and deletes the address from the address register 340 (step S941).
- the memory controller 300 issues a read request designating the extracted address (step S942).
- the memory controller 300 decodes the read data that has been read (step S943).
- the memory controller 300 determines whether or not the decoding is successful (step S944). If the decoding is successful (step S944: Yes), the memory controller 300 outputs the decoded data to the host computer 100 (step S945), and determines whether or not the number of corrections is N or more (step S946).
- step S946 When the number of corrections is N or more (step S946: Yes), the memory controller 300 generates a bit select signal, issues a refresh request, and supplies it to the nonvolatile memory 400 (step S947).
- step S944 When decryption fails (step S944: No), the memory controller 300 outputs a read error to the host computer 100 (step S948). When the number of corrections is less than N (step S946: No), or after step S947 or after step S948, the memory controller 300 determines whether there is an address in the register (step S949). . If there is an address (step S949: Yes), the memory controller 300 returns to step S941, and if there is no address (step S949: No), the memory controller 300 ends the controller-side refresh process.
- the memory controller 300 decodes the read data in both the controller-side read process and the controller-side refresh process. However, the memory controller 300 may be configured not to perform the decoding in the controller-side refresh process. However, since the held address may be accessed and the RD may proceed between the end of the controller-side read process and the start of the controller-side refresh process, it is desirable to perform decoding also in the controller-side refresh process. .
- the memory controller 300 holds an address where an error has occurred, and performs refreshing at the address when a certain condition is satisfied later. Access efficiency can be improved.
- the memory controller 300 performs refresh at the address when the number of errors in the read data is equal to or greater than a predetermined allowable value at each read.
- the host computer 100 may set the refresh mode when the access frequency decreases, and the memory controller 300 may perform the refresh in the refresh mode.
- the memory system according to the third embodiment is different from the first embodiment in that the memory controller 300 performs refresh when the access frequency decreases and the refresh mode is set.
- FIG. 19 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the third embodiment.
- the memory controller 300 according to the third embodiment is different from the first embodiment in that a refresh controller 332 is provided instead of the refresh controller 330.
- the refresh control unit 332 receives a mode switching signal from the host computer 100.
- This mode switching signal is a signal for instructing switching to either the normal mode or the refresh mode.
- the normal mode is a mode for performing reading and writing.
- the refresh control unit 332 issues a read request by designating all the addresses of the nonvolatile memory 400 in order. If the number of corrections is N or more, the refresh control unit 332 supplies a refresh request and a bit select signal to the nonvolatile memory 400.
- the host computer 100 switches to the refresh mode when the access frequency drops below a certain level, for example, and switches to the normal mode otherwise.
- FIG. 20 is a flowchart illustrating an example of the operation of the storage 200 according to the third embodiment.
- the operation of the storage 200 in the third embodiment is the same as that in the second embodiment, except that step S908 is executed instead of step S907.
- step S906 determines whether or not the mode has been switched to the refresh mode (step S908).
- step S908: Yes the memory controller 300 executes steps S940 and S920.
- step S908 No
- step S940 the memory controller 300 returns to step S902.
- FIG. 21 is a flowchart illustrating an example of a controller-side read process according to the third embodiment.
- the controller-side read process in the third embodiment is the same as the controller-side read / refresh process in the first embodiment, except that steps S915 and S916 are not executed.
- FIG. 22 is a flowchart illustrating an example of the controller-side refresh process according to the third embodiment.
- the controller-side refresh process of the third embodiment is the same as that of the second embodiment except that steps S950, S951, and S952 are executed instead of steps S941 and S949.
- the memory controller 300 sets the top address of the nonvolatile memory 400 as a read address (step S950), and executes steps S942 to S948. If the number of corrections is less than N (step S946: No), or after step S947 or step S948, the memory controller 300 determines whether the read address is the last address of the nonvolatile memory 400. (Step S951). If it is not the last address (step S951: No), the memory controller 300 sets the next address as the read address (step S952) and returns to step S942. On the other hand, if it is the last address (step S951: Yes), the memory controller 300 ends the controller-side refresh process.
- the memory controller 300 performs refresh when set to the refresh mode, so that the access efficiency can be improved.
- the memory controller 300 issues a refresh request when the number of errors exceeds a predetermined allowable value.
- the error includes RD error and RTN error types.
- the RD error only a certain pattern such as “1” is inverted to “0” can be seen. For this reason, if refresh is performed when the number of errors becomes N or more regardless of the error pattern, a refresh request may be issued even if only an error that is not an RD error occurs, resulting in a decrease in access efficiency. is there. For this reason, it is desirable that the memory controller 300 issue a refresh request when the number of errors in a certain pattern in which an RD error is assumed is equal to or greater than a predetermined allowable value.
- the memory controller 300 according to the fourth embodiment is different from the first embodiment in that the memory controller 300 issues a refresh request when the number of errors in a certain pattern becomes N ′ or more.
- FIG. 23 is a flowchart illustrating an example of a controller-side read / refresh process according to the fourth embodiment.
- the controller-side read / refresh process of the fourth embodiment differs from that of the first embodiment in that step S918 is executed instead of step S915.
- the memory controller 300 determines whether or not the number of errors corrected from “0” to “1” is greater than or equal to the allowable value N ′ (N ′ is an integer) (Ste S918). If the number of corrections is greater than or equal to N ′ (step S918: Yes), the memory controller 300 executes step S916. On the other hand, if the number of corrections is less than N ′ (step S918: No), or after step S917, the memory controller 300 ends the controller-side read / refresh process.
- the memory controller 300 performs refresh when the number of errors in a certain pattern is equal to or greater than an allowable value. Can be refreshed except. Thereby, unnecessary refresh can be suppressed and deterioration of the memory cell can be prevented.
- a binary memory cell is assumed as the nonvolatile memory 400, but a multilevel memory cell may be provided.
- the memory system according to the fifth embodiment is different from the first embodiment in that the nonvolatile memory 400 includes multilevel memory cells.
- FIG. 24 is a block diagram illustrating a configuration example of the nonvolatile memory 400 according to the fifth embodiment.
- the nonvolatile memory 400 according to the fifth embodiment is different from the first embodiment in that a memory cell array 421 is provided instead of the memory cell array 420.
- the memory cell array 421 is different from the first embodiment in that a plurality of multi-value memories are provided in a two-dimensional lattice shape. Each multi-level memory cell holds a plurality of bits.
- FIG. 25 is a diagram illustrating an example of the resistance distribution of the memory cell after the reading in the fifth embodiment is repeated.
- the vertical axis in the figure is the number of memory cells, and the horizontal axis is the resistance value.
- the resistance distribution is divided into three distributions with two threshold values (R ref1 _H and R ref1 _L, etc.) as a boundary. These are called, for example, a low resistance state (LRS), a middle resistance state (MRS), and a high resistance state (HRS).
- LRS low resistance state
- MRS middle resistance state
- HRS high resistance state
- the dotted curve in FIG. 25 shows the state of the memory cell immediately after rewriting
- the solid line curve shows the state of the memory cell that has changed due to repeated reading by the sense signal.
- the resistance value shifts to the high resistance side.
- This RD generates an RD error in which “2” corresponding to MRS is read from the bit in which “1” is written.
- an RD error occurs in which “0” corresponding to HRS is read from the bit in which “2” is written.
- the hatched portion in the figure indicates a portion where an RD error has occurred.
- FIG. 26 is a diagram illustrating an example of a change in resistance value with an increase in the number of readings according to the fifth embodiment.
- the vertical axis represents the resistance value
- the horizontal axis represents the number of readings.
- a in the figure is a figure which shows the change of the resistance value of the memory cell in which "1" corresponding to LRS was written.
- the resistance value is lower than the reference resistance value R ref1 _L, and the value “1” is normally read.
- R ref1 _L the resistance value “1” is normally read.
- an RD error in which the value “2” corresponding to MRS is erroneously read occurs.
- the memory controller 300 When the memory controller 300 detects an error from the m′-th read data, it issues a refresh request, and the non-volatile memory 400 changes the reference resistance value to R ref2 _L and R ref2 _H, and performs the m ′ + 1-th re-read. Read. If it is an RD error, the correct logical value “1” is read at m ′ + 1 time. In this case, the nonvolatile memory 400 rewrites the memory cell to “1”.
- b in FIG. 26 is a diagram showing a change in the resistance value of the memory cell in which “2” corresponding to MRS is written.
- the resistance value is between the reference resistance values R ref1 _H and R ref1 _L, and the value “2” is normally read out.
- the resistance value increases due to RD as the reading is repeated, and exceeds the reference resistance value R ref1 —H at the n′th time.
- an RD error occurs in which the value “0” corresponding to the HRS is erroneously read.
- the memory controller 300 When the memory controller 300 detects an error from the n′-th read data, the memory controller 300 issues a refresh request.
- the nonvolatile memory 400 changes the reference resistance value to R ref2 _L and R ref2 _H, and performs the n ′ + 1-th re-read. Read. If it is an RD error, the correct logical value “2” is read out n ′ + 1 times. In this case, the nonvolatile memory 400 rewrites the memory cell to “2”.
- the nonvolatile memory 400 reads the read data for each memory cell with reference to a plurality of threshold values, and reads the reread data by changing the threshold values.
- a multi-value memory cell can be used as a memory cell.
- the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute these series of procedures or a recording medium storing the program. You may catch it.
- a recording medium for example, a CD (Compact Disc), an MD (MiniDisc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc), or the like can be used.
- this technique can also take the following structures.
- a read processing unit that performs a read process of reading read data from each of a plurality of memory cells with a first threshold as a reference;
- An error detection unit that detects presence or absence of an error in the read data and identifies the erroneous memory cell among the plurality of memory cells;
- a reread processing unit that performs a reread process of reading data from the specified memory cell as reread data with reference to a second threshold different from the first threshold;
- a memory system comprising: a refresh processing unit for performing rewriting of data to the reread data as a refresh process for a memory cell having a value of the reread data different from the read data among the specified memory cells.
- the refresh control unit according to (1) further including a refresh control unit that causes the reread unit to execute the reread processing on a memory cell in which the error of a predetermined pattern occurs among the specified memory cells.
- Memory system. (3) further comprising an address holding unit for holding an address assigned to the erroneous memory cell; The memory system according to (2), wherein when the predetermined condition is satisfied, the refresh control unit reads the held address, designates the address, and causes the read processing unit to execute the read processing.
- the predetermined condition is that the number of held addresses exceeds a predetermined number.
- the memory system according to (2) or (3), wherein the predetermined condition is that the refresh control unit has received a refresh command instructing execution of the refresh process.
- the plurality of memory cells are divided into a plurality of sections to which any of the plurality of addresses is assigned,
- the refresh control unit according to (2) wherein when a refresh mode for performing the refresh processing is set, the refresh processing unit sequentially designates each of the plurality of addresses and causes the read processing unit to execute the read processing.
- Memory system When the number of the errors of the predetermined pattern exceeds an allowable value, the refresh control unit applies the memory to the memory cell in which the error of the predetermined pattern has occurred among the specified memory cells.
- the memory system according to any one of (2) to (5), wherein the reread unit executes the reread processing.
- Each of the plurality of memory cells holds data including a plurality of bits, The memory system according to any one of (1) to (7), wherein each of the first and second threshold values includes a plurality of threshold values. (9) The characteristic value of the memory cell changes in a specific direction every time data is read, The memory system according to any one of (1) to (8), wherein the second threshold value is a value that is changed from the first threshold value in the specific direction.
- (10) a plurality of memory cells;
- a read processing unit that performs a read process of reading read data from each of the plurality of memory cells based on a first threshold;
- a reread processing unit that performs a reread process of reading data from each of the memory cells having an error in the read data as reread data with reference to a second threshold different from the first threshold;
- a refresh processing unit for performing rewriting of data to the reread data as a refresh process for a memory cell having a value of the reread data different from the read data among the memory cells having an error in the read data;
- (11) a read processing procedure in which the read processing unit performs a read process of reading read data from each of the plurality of memory cells based on the first threshold;
- An error detection procedure wherein an error detection procedure is performed to detect the presence or absence of an error in the read data and identify the erroneous memory cell among the identified memory cells;
- a reread processing procedure in which a reread processing unit performs a reread process of reading data from the specified memory cell as reread data on the basis of a second threshold different from the first threshold;
- a refresh processing section wherein a refresh processing procedure is performed in which rewriting of data to the reread data is performed as a refresh processing for a memory cell having a value of the reread data different from the read data among the specified memory cells.
- Host computer 100 Host computer 200 Storage 300 Memory controller 301 Host interface 302 RAM 303 CPU 304 ECC processing unit 305 ROM 306, 450 Bus 307 Memory interface 310 Write controller 320, 321 Read controller 330, 331, 332 Refresh controller 340 Address register 400 Non-volatile memory 410 Data buffer 420, 421 Memory cell array 430 Driver 440 Address decoder 460 Control interface 470 Memory Control unit 471 Request decoder 472 Write processing unit 473 Read processing unit 474 Reread processing unit 475 Refresh processing unit
Abstract
Description
1.第1の実施の形態(閾値を変えて再リードし、リフレッシュする例)
2.第2の実施の形態(保持したアドレスから閾値を変えて再リードし、リフレッシュする例)
3.第3の実施の形態(リフレッシュモードにおいて閾値を変えて再リードし、リフレッシュする例)
4.第4の実施の形態(一定パターンのエラー数が多いと閾値を変えて再リードし、リフレッシュする例)
5.第5の実施の形態(多値メモリセルにおいて閾値を変えて再リードし、リフレッシュする例)
[メモリシステムの構成例]
図1は、第1の実施の形態におけるメモリシステムの一構成例を示すブロック図である。このメモリシステムは、ホストコンピュータ100およびストレージ200を備える。
図2は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、RAM(Random Access Memory)302、CPU(Central Processing Unit)303、ECC処理部304およびROM(Read Only Memory)305を備える。また、メモリコントローラ300は、ホストインターフェース301、バス306およびメモリインターフェース307を備える。
図4は、第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ410、メモリセルアレイ420、ドライバ430、アドレスデコーダ440、バス450、制御インターフェース460、および、メモリ制御部470を備える。
Vref=I×Rref
上式において、Iは、センスパルスの電流値であり、Rrefは、参照抵抗値である。
図5は、第1の実施の形態におけるメモリ制御部470の一構成例を示すブロック図である。このメモリ制御部470は、リクエストデコーダ471、ライト処理部472、リード処理部473、再リード処理部474およびリフレッシュ処理部475を備える。
図11は、第1の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。この動作は、例えば、ストレージ200に電源が投入されたときや、ホストコンピュータ100により初期化が指示されたときに開始する。
上述の第1の実施の形態では、メモリコントローラ300は、リード処理においてエラー数が所定の許容値以上となるたびに、そのアドレスにおいてリフレッシュを行っていた。しかし、リフレッシュ処理の間、不揮発性メモリ400は、他のリクエストを実行することができないため、エラー検出のたびにリフレッシュ処理を行うとアクセス速度が低下するおそれがある。このため、メモリコントローラ300は、一定の条件が満たされるまでリフレッシュリクエストの発行を抑制し、ライトリクエストやリードリクエストを優先して発行することが望ましい。一定の条件としては、例えば、ホストコンピュータ100によりリフレッシュが指示されたことや、リフレッシュ対象のアドレスの個数が所定個数を超えたことなどが挙げられる。この第2の実施の形態のメモリコントローラ300は、一定の条件が満たされた場合にリフレッシュリクエストを発行する点において第1の実施の形態と異なる。
上述の第1の実施の形態では、メモリコントローラ300は、リードのたびに、リードデータのエラー数が所定の許容値以上であれば、そのアドレスにおいてリフレッシュを行っていた。しかし、リードのたびにエラー数に応じてリフレッシュを行うのでなく、リードやライトのアクセス頻度が低下したときにまとめてリフレッシュを行った方が、アクセス効率を向上させることができる。例えば、アクセス頻度が低下した際にホストコンピュータ100がリフレッシュモードを設定し、そのリフレッシュモードの際にメモリコントローラ300がリフレッシュを行う構成であってもよい。この第3の実施の形態のメモリシステムは、アクセス頻度が低下してリフレッシュモードに設定された際にメモリコントローラ300がリフレッシュを行う点において第1の実施の形態と異なる。
上述の第1の実施の形態では、メモリコントローラ300は、エラー数が所定の許容値以上となった場合にリフレッシュリクエストを発行していた。しかし、エラーには、RDエラーやRTNエラーの種類があり、RDエラーでは、「1」が「0」に反転するなどの一定のパターンしか見られない。このため、エラーのパターンに関わらず、エラー数がN個以上になった際にリフレッシュを行うと、RDエラーでないエラーしか生じなかった際にもリフレッシュリクエストが発行されてアクセス効率が低下するおそれがある。このため、RDエラーが想定される一定のパターンのエラー数が所定の許容値以上の際にメモリコントローラ300がリフレッシュリクエストを発行することが望ましい。この第4の実施の形態のメモリコントローラ300は、一定のパターンのエラー数がN’個以上になった際にメモリコントローラ300がリフレッシュリクエストを発行する点において第1の実施の形態と異なる。
上述の第1の実施の形態では、不揮発性メモリ400として2値メモリセルを想定していたが多値メモリセルを設けてもよい。この第5の実施の形態のメモリシステムは、不揮発性メモリ400として、多値メモリセルを備える点において第1の実施の形態と異なる。
(1)第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記リードデータの誤りの有無を検出して前記複数のメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出部と、
前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備するメモリシステム。
(2)前記特定されたメモリセルのうち所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させるリフレッシュ制御部をさらに具備する
前記(1)記載のメモリシステム。
(3)前記誤りのあるメモリセルに割り当てられたアドレスを保持するアドレス保持部をさらに具備し、
前記リフレッシュ制御部は、所定の条件が満たされた場合には前記保持されたアドレスを読み出して当該アドレスを指定して前記リード処理部に前記リード処理を実行させる
前記(2)記載のメモリシステム。
(4)前記所定の条件は、前記保持されたアドレスの個数が所定個数を超えることである前記(2)または(3)記載のメモリシステム。
(5)前記所定の条件は、前記リフレッシュ処理の実行を指示するリフレッシュコマンドを前記リフレッシュ制御部が受信したことである
前記(2)または(3)記載のメモリシステム。
(6)前記複数のメモリセルは、前記複数のアドレスのいずれかが各々に割り当てられた複数の区画に分割され、
前記リフレッシュ制御部は、前記リフレッシュ処理を行うためのリフレッシュモードが設定された場合には前記複数のアドレスのそれぞれを順に指定して前記リード処理部に前記リード処理を実行させる
前記(2)に記載のメモリシステム。
(7)前記リフレッシュ制御部は、前記所定のパターンの前記誤りの個数が許容値を超える場合には前記特定されたメモリセルのうち前記所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させる
前記(2)から(5)のいずれかに記載のメモリシステム。
(8)前記複数のメモリセルのそれぞれは、複数のビットを含むデータを保持し、
前記第1および第2の閾値のそれぞれは、複数の閾値を含む
前記(1)から(7)のいずれかに記載のメモリシステム。
(9)前記メモリセルの特性値は、データが読み出されるたびに特定の方向へ変化し、
前記第2の閾値は、前記第1の閾値から前記特定の方向へ変化させた値である
前記(1)から(8)のいずれかに記載のメモリシステム。
(10)複数のメモリセルと、
第1の閾値を基準として前記複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記第1の閾値と異なる第2の閾値を基準として前記リードデータに誤りのあるメモリセルの各々からデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記リードデータに誤りのある前記メモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備する記憶装置。
(11)リード処理部が、第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理手順と、
誤り検出部が、前記リードデータの誤りの有無を検出して前記特定されたメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出手順と、
再リード処理部が、前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理手順と、
リフレッシュ処理部が、前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理手順と
を具備するメモリシステムの制御方法。
200 ストレージ
300 メモリコントローラ
301 ホストインターフェース
302 RAM
303 CPU
304 ECC処理部
305 ROM
306、450 バス
307 メモリインターフェース
310 ライト制御部
320、321 リード制御部
330、331、332 リフレッシュ制御部
340 アドレスレジスタ
400 不揮発性メモリ
410 データバッファ
420、421 メモリセルアレイ
430 ドライバ
440 アドレスデコーダ
460 制御インターフェース
470 メモリ制御部
471 リクエストデコーダ
472 ライト処理部
473 リード処理部
474 再リード処理部
475 リフレッシュ処理部
Claims (11)
- 第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記リードデータの誤りの有無を検出して前記複数のメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出部と、
前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備するメモリシステム。 - 前記特定されたメモリセルのうち所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させるリフレッシュ制御部をさらに具備する
請求項1記載のメモリシステム。 - 前記誤りのあるメモリセルに割り当てられたアドレスを保持するアドレス保持部をさらに具備し、
前記リフレッシュ制御部は、所定の条件が満たされた場合には前記保持されたアドレスを読み出して当該アドレスを指定して前記リード処理部に前記リード処理を実行させる
請求項2記載のメモリシステム。 - 前記所定の条件は、前記保持されたアドレスの個数が所定個数を超えることである
請求項2記載のメモリシステム。 - 前記所定の条件は、前記リフレッシュ処理の実行を指示するリフレッシュコマンドを前記リフレッシュ制御部が受信したことである
請求項2記載のメモリシステム。 - 前記複数のメモリセルは、前記複数のアドレスのいずれかが各々に割り当てられた複数の区画に分割され、
前記リフレッシュ制御部は、前記リフレッシュ処理を行うためのリフレッシュモードが設定された場合には前記複数のアドレスのそれぞれを順に指定して前記リード処理部に前記リード処理を実行させる
請求項2記載のメモリシステム。 - 前記リフレッシュ制御部は、前記所定のパターンの前記誤りの個数が許容値を超える場合には前記特定されたメモリセルのうち前記所定のパターンの前記誤りが生じたメモリセルに対して前記再リード部に前記再リード処理を実行させる
請求項6記載のメモリシステム。 - 前記複数のメモリセルのそれぞれは、複数のビットを含むデータを保持し、
前記第1および第2の閾値のそれぞれは、複数の閾値を含む
請求項1記載のメモリシステム。 - 前記メモリセルの特性値は、データが読み出されるたびに特定の方向へ変化し、
前記第2の閾値は、前記第1の閾値から前記特定の方向へ変化させた値である
請求項1記載のメモリシステム。 - 複数のメモリセルと、
第1の閾値を基準として前記複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理部と、
前記第1の閾値と異なる第2の閾値を基準として前記リードデータに誤りのあるメモリセルの各々からデータを再リードデータとして読み出す再リード処理を行う再リード処理部と、
前記リードデータに誤りのある前記メモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理部と
を具備する記憶装置。 - リード処理部が、第1の閾値を基準として複数のメモリセルの各々からリードデータを読み出すリード処理を行うリード処理手順と、
誤り検出部が、前記リードデータの誤りの有無を検出して前記特定されたメモリセルのうち前記誤りのあるメモリセルを特定する誤り検出手順と、
再リード処理部が、前記第1の閾値と異なる第2の閾値を基準として前記特定されたメモリセルからデータを再リードデータとして読み出す再リード処理を行う再リード処理手順と、
リフレッシュ処理部が、前記特定されたメモリセルのうち前記再リードデータの値が前記リードデータと異なるメモリセルに対して前記再リードデータへのデータの書き換えをリフレッシュ処理として行うリフレッシュ処理手順と
を具備するメモリシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/527,374 US10031865B2 (en) | 2014-11-26 | 2015-10-08 | Memory system, storage device, and method for controlling memory system |
JP2016561448A JP6497394B2 (ja) | 2014-11-26 | 2015-10-08 | メモリシステム、記憶装置、および、メモリシステムの制御方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014-239060 | 2014-11-26 | ||
JP2014239060 | 2014-11-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016084497A1 true WO2016084497A1 (ja) | 2016-06-02 |
Family
ID=56074075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/078610 WO2016084497A1 (ja) | 2014-11-26 | 2015-10-08 | メモリシステム、記憶装置、および、メモリシステムの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10031865B2 (ja) |
JP (1) | JP6497394B2 (ja) |
WO (1) | WO2016084497A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015038794A (ja) * | 2013-08-19 | 2015-02-26 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
JP2018163720A (ja) * | 2017-03-24 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
JP2019102117A (ja) * | 2017-12-05 | 2019-06-24 | 三星電子株式会社Samsung Electronics Co.,Ltd. | メモリ装置及びその動作方法 |
US10796776B2 (en) | 2018-09-03 | 2020-10-06 | Toshiba Memory Corporation | Nonvolatile memory and memory system |
US11789659B2 (en) | 2021-12-09 | 2023-10-17 | SK Hynix Inc. | Method for dynamically managing host read operation and read refresh operation in a storage device, storage device, and storage medium |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016053808A (ja) * | 2014-09-03 | 2016-04-14 | ソニー株式会社 | 記憶制御装置、記憶装置、および、記憶制御方法 |
US10885991B2 (en) * | 2017-04-04 | 2021-01-05 | Sandisk Technologies Llc | Data rewrite during refresh window |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007128577A (ja) * | 2005-11-01 | 2007-05-24 | Toshiba Corp | 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム |
JP2012256392A (ja) * | 2011-06-09 | 2012-12-27 | Sharp Corp | 半導体記憶装置 |
WO2013105414A1 (ja) * | 2012-01-12 | 2013-07-18 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110793A (ja) | 1992-09-30 | 1994-04-22 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2012133642A (ja) * | 2010-12-22 | 2012-07-12 | Sony Corp | メモリ装置、メモリ制御方法、およびプログラム |
JP5740296B2 (ja) | 2011-12-16 | 2015-06-24 | 株式会社東芝 | 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム |
-
2015
- 2015-10-08 JP JP2016561448A patent/JP6497394B2/ja active Active
- 2015-10-08 WO PCT/JP2015/078610 patent/WO2016084497A1/ja active Application Filing
- 2015-10-08 US US15/527,374 patent/US10031865B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007128577A (ja) * | 2005-11-01 | 2007-05-24 | Toshiba Corp | 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム |
JP2012256392A (ja) * | 2011-06-09 | 2012-12-27 | Sharp Corp | 半導体記憶装置 |
WO2013105414A1 (ja) * | 2012-01-12 | 2013-07-18 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015038794A (ja) * | 2013-08-19 | 2015-02-26 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
JP2018163720A (ja) * | 2017-03-24 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
JP2019102117A (ja) * | 2017-12-05 | 2019-06-24 | 三星電子株式会社Samsung Electronics Co.,Ltd. | メモリ装置及びその動作方法 |
JP7097792B2 (ja) | 2017-12-05 | 2022-07-08 | 三星電子株式会社 | メモリ装置及びその動作方法 |
US10796776B2 (en) | 2018-09-03 | 2020-10-06 | Toshiba Memory Corporation | Nonvolatile memory and memory system |
US11004523B2 (en) | 2018-09-03 | 2021-05-11 | Toshiba Memory Coiporation | Nonvolatile memory and memory system |
US11789659B2 (en) | 2021-12-09 | 2023-10-17 | SK Hynix Inc. | Method for dynamically managing host read operation and read refresh operation in a storage device, storage device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP6497394B2 (ja) | 2019-04-10 |
US20170329724A1 (en) | 2017-11-16 |
US10031865B2 (en) | 2018-07-24 |
JPWO2016084497A1 (ja) | 2017-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6497394B2 (ja) | メモリシステム、記憶装置、および、メモリシステムの制御方法 | |
JP6686892B2 (ja) | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 | |
US9361952B2 (en) | Storage controlling apparatus, memory system, information processing system and storage controlling method | |
US8510633B2 (en) | Semiconductor storage device and method of operating the same | |
US11537465B2 (en) | Memory system | |
JP6891817B2 (ja) | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 | |
KR101602316B1 (ko) | 반도체 메모리 장치 및 그것의 데이터 처리 방법 | |
JP6958363B2 (ja) | メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法 | |
KR20140113100A (ko) | 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및 | |
KR20180000593A (ko) | 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치 | |
WO2016153965A1 (en) | One time programmable memory | |
JP6657634B2 (ja) | 符号化装置、メモリシステム、通信システムおよび符号化方法 | |
JP5867264B2 (ja) | 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 | |
JP6497395B2 (ja) | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 | |
US20140025907A1 (en) | Storage control apparatus, storage apparatus, and processing methods thereof | |
KR102599046B1 (ko) | 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템 | |
KR102133209B1 (ko) | 데이터 복호화 장치 및 데이터 복호화 방법 | |
WO2017010147A1 (ja) | 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 | |
KR20210010718A (ko) | 메모리 시스템 및 메모리 시스템에서의 에러정정방법 | |
JPWO2020031435A1 (ja) | 記憶制御装置、記憶装置および記憶制御方法 | |
KR20090048142A (ko) | 불휘발성 메모리 장치의 ecc 처리부 | |
KR20180024218A (ko) | 쓰기 디스터번스 에러를 줄이기 위한 pcm 시스템 및 그의 제어 방법 | |
WO2017026998A1 (en) | Mapping resistance level states to multi-bit data values | |
KR20150098254A (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15862276 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016561448 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15527374 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15862276 Country of ref document: EP Kind code of ref document: A1 |