The present application claims priority of Korean Patent Application No. 10-2017-0056084, filed on May 2, 2017, which is incorporated herein by reference in its entirety.
Exemplary embodiments of the present disclosure relate to a memory system including a memory device and a memory controller for controlling the memory device.
Recently, researchers and the industry are focusing to develop next-generation memory devices for replacing the Dynamic Random Access Memory (DRAM) and the flash memory. Among the next-generation memory devices is a resistive memory device using a variable resistance material, i.e., a material capable of switching between at least two different resistance states as the resistance is drastically changed according to a bias applied thereto. Non-limiting examples of a resistive memory device include a Phase-Change Random Access Memory (PCRAM) device, a Resistive Random Access Memory (RRAM) device, a Magnetic Random Access Memory (MRAM) device, and a Ferroelectric Random Access Memory (FRAM) device.
A typical resistive memory device may have a memory cell array with a cross point array structure having a plurality of bottom electrodes (e.g., a plurality of row lines (or word lines)) and a plurality of top electrodes (e.g., a plurality of column lines (or bit lines)) crossed with each other and memory cells disposed at the cross points. Each memory cell may include a variable resistance device and a selection device serially coupled.
Although the resistive memory device is developed as a non-volatile memory device, a drift phenomenon where a resistance value varies as time passes after a data is written in a memory cell may occur causing the loss of data. Therefore, it would be desirable to develop a solution to address the loss of data in restrictive memory devices.
Embodiments of the present invention are directed to a memory system including at least one memory device that may efficiently prevent data loss of memory cells of the memory device. The memory device may be a resistive memory device.
In accordance with an embodiment of the present invention, a method for operating a memory system includes: reading a data from a memory device; detecting and correcting an error of the data; when the error of the data is equal to or greater than a threshold value, deciding an address corresponding to memory cells from which the data is read in the memory device as a rewrite-requiring address; and rewriting the data of the memory cells corresponding to the rewrite-requiring address.
The reading of the data, the detecting and correcting of the error of the data, and the deciding of the address corresponding to the memory cells may be performed upon a request from a host.
The rewriting of the data of the memory cells may include: reading the data of the memory cells corresponding to the rewrite-requiring address; detecting and correcting an error of the read data so as to produce an error-corrected data; and writing the error-corrected data in the memory cell corresponding to the rewrite-requiring address.
In the rewriting of the data of the memory cells may include when it is impossible to correct the error of the read data, repeatedly changing a voltage level of a read voltage that is used in the memory device and performing the operation of reading the data of the memory cells corresponding to the rewrite-requiring address.
The reading of the data, the detecting and correcting of the error of the data, and the deciding of the address corresponding to the memory cells may be performed periodically while changing the memory cells from which the data is read, when the error of the data is equal to or greater than a threshold value.
The memory device may include a plurality of memory cells, and each of the plurality of the memory cells may include a resistive memory element and a selection element.
The resistive memory element may be a phase-change memory device.
In accordance with another embodiment of the present invention, a memory system includes: a memory device including a plurality of memory cells; and a memory controller suitable for reading a data from the memory device, and when an error of data is equal to or greater than a threshold value, deciding an address corresponding to memory cells from which the data is read as a rewrite-requiring address.
The memory controller may rewrite the data of the memory cells corresponding to the rewrite-requiring address.
The memory controller may read the data from the memory device in response to a read operation request from a host, and when an error of the data is equal to or greater than a threshold value, the memory controller may perform an operation of deciding the address corresponding to the memory cells from which the data is read as the rewrite-requiring address.
The memory controller may read the data from the memory device, and when an error of the data is equal to or greater than a threshold value, the memory controller may periodically perform the operation of deciding the address corresponding to the memory cells from which the data is read as the rewrite-requiring address while changing the memory cells from which the data is read.
During the rewrite operation, the memory controller may read the data from the memory cells of the memory device corresponding to the rewrite-requiring address, detect and correct an error of the data so as to produce an error-corrected data, and write the error-corrected data in the memory cells of the memory device corresponding to the rewrite-requiring address.
During the rewrite operation, when it is impossible to correct the error of the read data, the memory controller may periodically perform an operation of reading the data from the memory cells corresponding to the rewrite-requiring address while changing a voltage level of a read voltage that is used in the memory device until the error of the read data becomes correctable.
The memory controller may include: an error-correction circuit suitable for detecting and correcting an error of the data read from the memory device so as to produce an error-corrected data; a rewrite-requiring address storing circuit suitable for storing the rewrite-requiring address; and a rewrite circuit suitable for rewrite the data of the memory cells corresponding to the rewrite-requiring address.
The memory controller may include: a host interface suitable for communication with a host; a scheduler suitable for deciding a process order of requests of the host; a command generator suitable for generating a command to be applied to the memory device; a memory interface suitable for communication with the memory device; and a read retry circuit suitable for controlling a read retry operation of the memory device.
Each of plurality of the memory cells may include: a resistive memory element; and a selection element.
The resistive memory element may be a phase-change memory device.
Exemplary embodiments of the present invention will be described below in more detail with reference to the accompanying drawings. The present invention may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present invention to those skilled in the art. Throughout the disclosure, like reference numerals refer to like parts throughout the various figures and embodiments of the present invention.
Referring to
The resistive memory element M may be in a low resistance state (which is a set state SET) or a high resistance state (which is a reset state RESET) based on the data stored therein. For example, the resistive memory element M may be a phase-change memory device, wherein when the resistive memory element M is in a crystalline state, the resistance value of the resistive memory element M may be low, and when the resistive memory element M is in an amorphous state, the resistance value the resistive memory element M may be high.
When the selection element S is turned off, a small amount of current flows, and then when the amount of current flowing through a memory cell goes over a threshold value Ith, the selection element S is turned on, thus making much more current flow than the amount of current flowing before the selection element S is turned on. The selection element S may go through a snapback phenomenon where the voltage level at both ends of the resistive memory cell 100 is drastically decreased after the selection element S is turned on. The selection element S may be an ovonic threshold switch (OTS).
When the voltage of both ends of the resistive memory cell 100 which is in the low resistance state SET reaches a threshold value SET_Vth of a low resistance state, in other words, when the amount of current flowing through the resistive memory cell 100 in the low resistance state SET reaches the threshold value Ith, the selection element S of the resistive memory cell 100 in the low resistance state SET may be turned on and the snapback phenomenon where the voltage level at both ends of the resistive memory cell 100 is drastically decreased and the amount of current flowing through the resistive memory cell 100 is drastically increased may occur.
When the voltage at both ends of the resistive memory cell 100 which is in the high resistance state RESET reaches a threshold value RESET_Vth of a high-resistance state, in other words, when the amount of current flowing through the resistive memory cell 100 in the high resistance state RESET reaches the threshold value Ith, the selection element S of the resistive memory cell 100 in the high resistance state RESET may be turned on and the snapback phenomenon where the voltage level at both ends of the resistive memory cell 100 is drastically decreased and the amount of current flowing through the resistive memory cell 100 is drastically increased may occur.
The data stored in the resistive memory cell 100 may be read by using the snapback phenomenon. When a read voltage V_READ which is greater than the threshold value SET_Vth of a low resistance state and less than the threshold value RESET_Vth of a high resistance state is applied to both ends of the resistive memory cell 100 and when the resistive memory cell 100 is in a low resistance, the snapback phenomenon occurs in the resistive memory cell 100 and a large amount of current flows through the resistive memory cell 100. When a read voltage V_READ which is greater than the threshold value SET_Vth of a low resistance state and less than the threshold value RESET_Vth of a high resistance state is applied to both ends of the resistive memory cell 100 and the resistive memory cell 100 is in a high resistance, the snapback phenomenon does not occur in the resistive memory cell 100 and thus a small amount of current may flow through the resistive memory cell 100. Therefore, it is possible to determine whether the resistive memory cell 100 is in a low resistance state or in a high resistance state by applying the aforementioned read voltage V_READ to both ends of the resistive memory cell 100 and sensing the amount of current flowing through the resistive memory cell 100.
The data of the resistive memory cell 100 may be written (or programmed) by applying a write current to the resistive memory cell 100 and sending the resistive memory element M of the resistive memory cell 100 into a melting state. When the write current is gradually decreased after the resistive memory element M of the resistive memory cell 100 is sent into a melting state, the state of the resistive memory element M becomes a crystalline state and thus the state of the resistive memory element M may become a low resistance state. When the write current is rapidly decreased after the resistive memory element M of the resistive memory cell 100 is sent into a melting state, the state of the resistive memory device M becomes an amorphous state and thus the state of the resistive memory element M may become a high resistance state.
The resistance value of the resistive memory element M of the resistive memory cell 100 may be changed due to a drift phenomenon as time passes. Also, it has been observed that the resistance value of the selection element S may be changed due to the drift phenomenon as time passes. In short, the data stored in the resistive memory cell 100 may get lost due to the drift phenomenon.
Referring to
The memory controller 410 may control the operation of the memory device 420 upon receiving a request from a host. The host may be a central processing unit (CPU), a graphic processing unit (GPU), or an application processor (AP). The memory controller 410 may include a host interface 411, a scheduler 412, a command generator 413, an error correction circuit 414, a rewrite-requiring address storing circuit 415, a rewrite circuit 416, a read retry circuit 417, and a memory interface 418.
The host interface 411 may be an interface between the memory controller 410 and the host. Requests of the host may be received through the host interface 411, and process results of the requests may be transferred to the host through the host interface 411.
The scheduler 412 may decide an order for the requests to be directed to the memory device 420 among the requests received from the host. The scheduler 412 may decide the order for the requests to be directed to the memory device 420 differently from the order that the requests are received from the host to increase the performance of the memory device 420. For example, although the host requests for a read operation of the memory device 420 first and then requests for a write operation of the memory device 420, the scheduler 412 may control the order of the requests to perform the write operation prior to the read operation.
The command generator 413 may generate commands to be applied to the memory device 420 according to the order of the operations that is decided by the scheduler 412.
The error correction circuit 414 may generate an error correction code (ECC) based on a write data during a write operation. The error correction code generated in the error correction circuit 414 may be stored in the memory device 420 along with the write data. The error correction circuit 414 may detect and correct an error of a read data during a read operation based on the error correction code. The number of detectable error bits by the error correction circuit 414 may be greater than the number of error correctable bits. For example, the error correction circuit 414 may be able to correct errors of M bits (where M is an integer equal to or greater than 1) among the read data that are read at once (e.g., read data of one page), and detect errors of M+1 bits. In short, the error correction circuit 414 may be able to correct an error of M bits and correct an error of M+1 bits.
The rewrite-requiring address storing circuit 415 may store an address corresponding to memory cells that require a rewrite operation in the memory device 420 as a rewrite-requiring address. During a read operation, an address corresponding to memory cells from which an error of a threshold value or greater is detected by the error correction circuit 414 may be stored in the rewrite-requiring address storing circuit 415 as a rewrite-requiring address.
The rewrite circuit 416 may perform a rewrite operation onto memory cells corresponding to the rewrite-requiring address that is stored in the rewrite-requiring address storing circuit 415. The memory cells onto which the rewrite operation is performed may be protected from losing data. The rewrite operation and the rewrite circuit 416 will be described later in detail with reference to
The read retry circuit 417 may be a circuit for controlling a read retry operation which is performed when an error of a data read from the memory device 420 is not corrected by the error correction circuit 414. The read retry operation is an operation of repeating a read operation again and may include changing the voltage level of a read voltage which is used for the read operation of the memory device 420.
The memory interface 418 provides an interface between the memory controller 410 and the memory device 420. A command CMD and an address ADD may be transferred from the memory controller 410 to the memory device 420 through the memory interface 418, and data may be transferred and received between the memory controller 410 and the memory device 420 through the memory interface 418. The memory interface 418 may also be called a physical PHY interface.
The memory device 420 may perform a read operation and/or a write operation under the control of the memory controller 410. The voltage level of the read voltage VREAD that is used in the memory device 420 may be set by the memory controller 410. The memory device 420 may include a cell array 421, a read/write circuit 422, a read voltage generation circuit 423, and a control circuit 424. The memory device 420 may be a resistive memory device which is described above with reference to
The cell array 421 may include a plurality of memory cells. The read/write circuit 422 may write data in memory cells that are selected based on an address ADD among the memory cells of the cell array 421, or read data from the selected memory cells among the memory cells of the cell array 421 based on the address ADD. The read/write circuit 422 may receive a data to be written from the memory controller 410 during a write operation, and transfer a read data to the memory controller 410 during a read operation. The read voltage generation circuit 423 may generate the read voltage VREAD to be used for a read operation. The voltage level of the read voltage VREAD generated by the read voltage generation circuit 423 may be set by the memory controller 410. The control circuit 424 may control the cell array 421, the read/write circuit 422, and the read voltage generation circuit 423 to perform a read operation, a write operation, and/or a setup operation that are/is directed by a command CMD which is received from the memory controller 410.
Referring to
In step S502, the memory controller 410 may apply a command CMD for a read operation and an address ADD designating memory cells onto which the read operation is to be performed to the memory device 420 in response to a read request in the step S501, and a data read from the memory device 420 may be transferred to the memory controller 410. The data may include a normal data and an error correction code (ECC).
In step S503, the error correction circuit 414 of the memory controller 410 may detect and correct an error of the data that is read in the step S502. In step S504, the memory controller 410 may transfer the data whose error is corrected in the step S503 to the host.
In step S505, the memory controller 410 may compare the error detected in the step S503 with a threshold value. When the error detected in the step S503 is equal to or greater than the threshold value (YES in the step S505), it may be decided that the data is highly likely to be lost, and the address corresponding to the memory cells from which the data is read in the step S502 may be decided as a rewrite-requiring address and stored in the rewrite-requiring address storing circuit 415 in step S506. Herein, the threshold value may be set to be less than M, which is the number of bits that may be error-corrected by the error correction circuit 414. For example, when the number of bits that may be error-corrected by the error correction circuit 414 is 8 bits, the threshold value may be set to 6 bits. This means that a 6-bit error has occurred and the error correction circuit 414 may be able to correct an error of up to 8 bits. This signifies that the error may occur as many as they are not error-corrected by the error correction circuit 414 in the future. In other words, the possibility that the data is lost is high.
The operation of collecting rewrite-requiring addresses, which is described above with reference to
Referring to
In step S602, the memory controller 410 may apply a command CMD for a read operation and an address ADD designating memory cells onto which the read operation is to be performed to the memory device 420 in response to a read operation request in the step S601, and a data read from the memory device 420 may be transferred to the memory controller 410. The data may include a normal data and an error correction code (ECC).
In step S603, the error correction circuit 414 of the memory controller 410 may detect and correct an error of the data that is read in the step S602. The read operation of
In step S604, the memory controller 410 may compare the error detected in the step S603 with a threshold value. When the error detected in the step S603 is equal to or greater than the threshold value (YES in the step S604), it may be decided that the data is highly likely to be lost, and the address corresponding to the memory cells from which the data is read in the step S602 may be decided as a rewrite-requiring address and stored in the rewrite-requiring address storing circuit 415 in step S605.
The operation of collecting rewrite-requiring addresses, which is described above with reference to
To collect the rewrite-requiring addresses in the memory system 400, the method of
Referring to
In response to the request in the step S701, the memory controller 410 may apply a command CMD and an address ADD for a read operation to the memory device 420 in response to a read operation request in the step S701, and a data read from the memory device 420 may be transferred to the memory controller 410 in step S702. In some embodiments, the address ADD applied from the memory controller 410 to the memory device 420 may be a rewrite-requiring address. The data may include a normal data and an error correction code (ECC).
In step S703, the error correction circuit 414 of the memory controller 410 may detect and correct an error of the data that is read in the step S702.
In step S704, the memory controller 410 may decide whether the error in the step S703 is correctable. When it is impossible to correct the error in the step S703 (NO in step S704), for example, when the error of the read data includes M+1 bits, which is greater than the error-correctable bits M, a read retry operation may be performed in step S705. The read retry operation may be performed under the control of the read retry circuit 417. The read retry circuit 417 may change the voltage level of the read voltage VREAD that is generated in the read voltage generation circuit 423 of the memory device 420 and then control the memory device 420 to perform a read operation again. The operations of the steps S705, S703 and S704 are repeated until the error is correctable.
When it is possible to correct the error in the step S703, (i.e., YES in step S704), for example, when the number of the error bits of the read data is equal to or less than the error-correctable bits M, the rewrite circuit 416 may request the memory device 420 to perform a write operation of writing the error-corrected data obtained in the step S703 onto a memory cells corresponding to the rewrite-requiring address in step S706.
In response to the request in the step S706, the error correction circuit 414 may generate a new error correction code (ECC) in the step S707, based on the error-corrected data obtained in the step S703.
The memory controller 410 may then apply to the memory device 420 the command CMD for a write operation, the address ADD which is the same as the address in the step S702, the error-corrected data obtained in the step S703, and the error correction code (ECC) generated in the step S706. In this way, data may be re-written in the memory cells which correspond to the rewrite-requiring address of the memory device 420 in step S708.
After the step S708, the rewrite-requiring address that is used for the rewrite operation in the step S708 may be erased from the rewrite-requiring address storing circuit 415.
Through the method described in
According to the embodiments of the present disclosure, it is possible to efficiently prevent data of memory cells from being lost.
While the present invention has been described with respect to specific embodiments, it will be apparent to those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention as defined in the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2017-0056084 | May 2017 | KR | national |