WO2017010147A1 - 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 - Google Patents

不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 Download PDF

Info

Publication number
WO2017010147A1
WO2017010147A1 PCT/JP2016/063542 JP2016063542W WO2017010147A1 WO 2017010147 A1 WO2017010147 A1 WO 2017010147A1 JP 2016063542 W JP2016063542 W JP 2016063542W WO 2017010147 A1 WO2017010147 A1 WO 2017010147A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
cell
memory
read
deterioration
Prior art date
Application number
PCT/JP2016/063542
Other languages
English (en)
French (fr)
Inventor
森 健太郎
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2017010147A1 publication Critical patent/WO2017010147A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00

Definitions

  • the present technology relates to a nonvolatile memory, a memory controller, a storage device, an information processing system, and a method for controlling the nonvolatile memory.
  • the present invention relates to a nonvolatile memory, a memory controller that writes data to the nonvolatile memory, a storage device, an information processing system, and a control method in these.
  • a nonvolatile memory is used as a storage device of an information processing apparatus.
  • This nonvolatile memory can store data regardless of whether power is supplied or not, and is widely used for applications such as data storage.
  • Examples of such a non-volatile memory include EEPROM (Electrically Erasable and Programmable Read Only Memory) and NAND flash memory.
  • Other examples of such a non-volatile memory include MRAM (Magnetoresistive RAM) and ReRAM (Resistance RAM).
  • MRAM Magneticoresistive RAM
  • ReRAM Resistance RAM
  • the reliability maintenance period is acquired based on the deterioration degree for each block which is a unit of access and the read frequency which is the frequency of data reading.
  • refresh is performed for each block according to the reliability maintenance period. That is, refresh is performed before the reliability maintenance period of the data stored in the block elapses. This prevents the stored data from being destroyed.
  • the above-described conventional technique has a problem that the process for acquiring the timing for performing refresh becomes complicated.
  • the present technology has been created in view of such a situation, and an object of the present technology is to obtain a refresh timing in a nonvolatile memory by a simple process.
  • the present technology has been made to solve the above-described problems.
  • the first aspect of the present technology is a data cell for storing written data, and the data cell formed on the same chip as the data cell.
  • a non-volatile memory comprising a reference cell that stores a predetermined value as reference data and outputs the reference data to detect deterioration of the data at substantially the same time. This brings about the effect that reference data for detecting data deterioration is output from the reference cell.
  • a deterioration detection unit that detects the deterioration of the data when a value different from the predetermined value is read from the reference cell may be further provided. As a result, when a value different from the predetermined value is read from the reference cell, the deterioration detection unit detects data deterioration.
  • the first aspect further includes a write control unit that performs a refresh control for rewriting the data in the data cell and a control for rewriting the reference data substantially simultaneously during the detection by the deterioration detection unit. May be. This brings about an effect that refresh and rewriting of reference data are performed substantially simultaneously.
  • the write control unit may further perform writing to the data cell and writing to the reference cell using the predetermined value that is rapidly deteriorated as the reference data. This brings about the effect that the data deterioration is detected by the reference data that is rapidly deteriorated.
  • the data cell and the reference cell are written by applying a write voltage
  • the write control unit has a second different from the write voltage to the data cell.
  • the reference data may be written into the reference cell by applying a write voltage.
  • the second write voltage is applied to the reference cell when the reference data is written.
  • the data cell and the reference cell are read by determining a read current, which is a current that flows when a read voltage is applied, based on a threshold value. And reading from the reference cell by discrimination based on a second threshold different from the threshold at the time of reading from the data cell, and the write controller
  • the predetermined value that is the read current having a value closer to the threshold value of 2 may be written as the reference data.
  • a value that becomes a read current having a value close to the second threshold value is written in the reference cell as reference data, and reading from the reference cell is performed based on the second threshold value.
  • the write control unit may perform the refresh by writing the data after inverting the value stored in the data cell. This brings about the effect that the data in the data cell is inverted during the refresh.
  • the write control unit may rewrite the reference data by writing the predetermined value as reference data after writing a value different from the predetermined value.
  • the reference cell value is inverted when the reference data is rewritten.
  • the data cell is accessed in units of pages divided by a page size, the reference cell is arranged for each page, and the deterioration detection unit is configured for each page. Detection may be performed. This brings about the effect that data degradation is detected for each page.
  • a plurality of the reference cells may be arranged for each page. This brings about the effect that data deterioration is detected for each page by a plurality of reference cells.
  • the deterioration detection unit may perform the detection based on a majority operation of the plurality of reference data read from the plurality of reference cells. This brings about the effect that data deterioration is detected based on the result of majority calculation of a plurality of reference cells.
  • the data cell is accessed in units of pages divided by a page size
  • the reference cell is arranged for each block composed of a plurality of the pages
  • the deterioration detection unit includes: You may perform the said detection for every said block. This brings about the effect that data deterioration is detected for each block composed of a plurality of pages.
  • a data cell that stores written data and the data cell are formed on the same chip, and a predetermined value is stored as reference data almost simultaneously with the data, thereby degrading the data.
  • a deterioration detecting unit that detects deterioration of the data when a value different from the predetermined value is read from the reference cell of the nonvolatile memory including a reference cell that outputs the reference data to detect Memory controller. This brings about the effect that data deterioration is detected based on the reference data output from the reference cell.
  • a data cell that stores written data and a predetermined value that is formed on the same chip as the data cell and stores the predetermined value as reference data substantially simultaneously with the data are stored.
  • a reference cell that outputs the reference data to detect deterioration, and a deterioration detector that detects the deterioration of the data when a value different from the predetermined value is read from the reference cell. It is a storage device. This brings about the effect that data deterioration is detected based on the reference data output from the reference cell.
  • a fourth aspect of the present technology provides a data cell that stores written data and a predetermined value that is formed on the same chip as the data cell and stores the predetermined value as reference data substantially simultaneously with the data.
  • a memory comprising a reference cell that outputs the reference data to detect deterioration, and a deterioration detector that detects the deterioration of the data when a value different from the predetermined value is read from the reference cell
  • An information processing system comprising a device and a host computer that accesses the storage device. This brings about the effect that data deterioration is detected based on the reference data output from the reference cell.
  • the nonvolatile memory it is possible to obtain an excellent effect of acquiring the refresh timing by a simple process.
  • the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • FIG. 3 is a diagram illustrating a configuration example of a memory 300 according to the first embodiment of the present technology.
  • FIG. It is a figure showing an example of composition of a memory cell in an embodiment of this art.
  • 3 is a diagram illustrating a configuration example of a memory cell array 350 according to the first embodiment of the present technology.
  • FIG. 1 It is a figure showing an example of a processing procedure (memory) of reference data rewriting processing in a 1st embodiment of this art. It is a figure showing an example of a processing procedure (memory) of refresh processing in a 1st embodiment of this art. It is a figure showing an example of a processing procedure (memory) of refresh processing in a 2nd embodiment of this art. It is a figure showing an example of a processing procedure of reference data rewriting and refresh processing in a 3rd embodiment of this art. It is a figure showing the characteristic of storage element 351 in a 4th embodiment of this art. It is a figure showing the characteristic of storage element 351 in a 5th embodiment of this art.
  • First embodiment an example in which the memory detects data deterioration
  • Second embodiment example in which refresh is performed by writing once
  • Third Embodiment Example in which reference data is rewritten and refreshed by a single request
  • Fourth Embodiment Example of Applying Write Voltage Different from Data Cell to Reference Cell
  • Fifth Embodiment Example when reading from a reference cell based on a threshold different from that of a data cell
  • Sixth Embodiment Example when Memory Controller Detects Data Degradation 7).
  • Seventh embodiment (example in which memory performs data deterioration detection, reference data rewriting, and refresh processing) 8). Eighth embodiment (example in which a plurality of reference cells are arranged for each page) 9. Ninth embodiment (example in which a reference cell is arranged for each block)
  • FIG. 1 is a diagram illustrating a configuration example of an information processing device according to an embodiment of the present technology.
  • the information processing apparatus in FIG. 1 includes a host computer 100, a memory controller 200, and a memory 300. Note that the memory controller 200 and the memory 300 constitute a storage device.
  • the host computer 100 performs various processes in the information processing system.
  • the host computer 100 accesses the memory 300 by issuing a command such as writing or reading via the memory controller 200.
  • the signal line 109 is a signal line that electrically connects the host computer 100 and the memory controller 200.
  • the host computer 100 also includes a processor 110 and a memory controller interface 120.
  • the processor 110 controls the entire host computer 100.
  • the processor 110 operates based on a program stored in a ROM (Read Only Memory) (not shown), and performs processing such as generation of a write command.
  • ROM Read Only Memory
  • the memory controller interface 120 is an interface that communicates with the memory controller 200.
  • the generated write command or the like is issued to the memory controller 200 via the memory controller interface 120.
  • the memory controller 200 controls the memory 300.
  • the memory controller 200 interprets write and read commands issued from the host computer 100 and requests the memory 300 for write and read requests based on the commands.
  • the signal line 209 is a signal line that electrically connects the memory controller 200 and the memory 300.
  • the memory 300 stores data.
  • the memory 300 has a storage area inside, and accesses the storage area based on a request requested from the memory controller 200. At this time, data is transferred between the memory 300 and the memory controller 200.
  • the memory 300 is assumed to be a nonvolatile memory.
  • the memory 300 is an example of a nonvolatile memory described in the claims.
  • the host computer 100 When the host computer 100 performs reading, the host computer 100 issues a read command, a read destination address associated with the read command, and the number of read data to the memory controller 200.
  • the memory controller 200 interprets this command, and requests a read request from the memory 300 based on the read destination address and the number of read data associated therewith.
  • the memory 300 performs reading based on this request and outputs the read data to the memory controller 200. Further, the memory 300 outputs the result of the reading process to the memory controller 200 as a response. Thereafter, the memory controller 200 notifies the host computer 100 of the result of the reading process. Further, the memory controller 200 outputs the data output from the memory 300 to the host computer 100 as read data.
  • the host computer 100 issues a write command, write data associated therewith, a write destination address, and the number of write data to the memory controller 200.
  • the memory controller 200 interprets the issued write command and requests the memory 300 for a write request based on the write data, the write destination address, and the number of write data that accompany this command.
  • the memory 300 performs writing based on this request, and outputs the result of the writing process to the memory controller 200 as a response.
  • the memory controller 200 notifies the host computer 100 of the result of the writing process.
  • FIG. 2 is a diagram illustrating a configuration example of the memory controller 200 according to the first embodiment of the present technology.
  • the memory controller 200 includes a processor 210, an ECC processing unit 240, an address conversion unit 250, an alternative processing unit 260, a buffer 280, a host interface 230, and a memory interface 270.
  • the processor 210 controls the entire memory controller 200.
  • the processor 210 performs processing such as interpretation of a command issued by the host computer 100 and generation of a request for requesting the memory 300. Requests generated by the processor 210 include a reference data rewrite request, a refresh request, and an alternative write request in addition to the above-described write request and read request. These requests will be described later.
  • the processor 210 performs processing based on firmware stored in a ROM (not shown).
  • the host interface 230 is an interface for exchanging with the host computer 100.
  • a read command or the like issued by the host computer 100 is input to the memory controller 200 via the host interface 230. Further, read data or the like based on the read command is output to the host computer 100 via the host interface 230.
  • the memory interface 270 is an interface for exchanging with the memory 300. Requests and the like generated in the memory controller 200 are output to the memory 300 via the memory interface 270. In addition, read data output from the memory 300 is input to the memory controller 200 via the memory interface 270.
  • the ECC processing unit 240 performs ECC encoding of write data accompanying a write command issued from the host computer 100 and ECC decoding of read data output from the memory 300.
  • ECC encoding is a process of adding parity to write data to make an ECC code.
  • this parity for example, a parity generated using a BCH (Bose Chaudhuri Hocquenghem) code can be used.
  • ECC decoding is processing for extracting original data from an ECC code. At the time of this decoding, data error detection and error correction are performed.
  • the address conversion unit 250 converts a logical address that is an address included in a command issued by the host computer 100 into a physical address that is an address in the memory 300.
  • the address conversion unit 250 has an address conversion table indicating correspondence between logical addresses and physical addresses, and performs the above-described conversion based on the address conversion table. As will be described later, the memory 300 is accessed by a page address in units of pages. Therefore, the address conversion unit 250 converts the logical address into a physical address composed of a page address.
  • the substitution processing unit 260 performs substitution processing.
  • the substitute process is a process of replacing a page that cannot be written with an unused page.
  • the substitution processing unit 260 performs substitution by changing the address conversion table held in the address conversion unit 250. If there is no unused page, substitution processing is impossible.
  • Buffer 280 is a buffer that temporarily holds write data accompanying a write command issued from the host computer and read data output from memory 300.
  • the bus 201 is a bus that interconnects the units in the memory controller 200.
  • FIG. 3 is a diagram illustrating a configuration example of the memory 300 according to the first embodiment of the present technology.
  • the memory 300 includes a write control unit 310, a read control unit 340, a deterioration detection unit 320, a memory controller interface 330, a page buffer 380, and a memory cell array 350.
  • the memory cell array 350 is configured by arranging memory cells in a two-dimensional array.
  • This memory cell includes a data cell that is a memory cell that stores data and a reference cell that is a memory cell that stores reference data.
  • the reference data is a predetermined value stored in the reference cell in order to detect deterioration of the data stored in the data cell.
  • the data storage state in the data cell changes with the passage of time from the initial state in which writing is performed. As this change progresses, it becomes difficult to maintain the stored data. Such a change in the storage state of data is referred to as data deterioration.
  • the reference cell outputs reference data in order to detect this data deterioration.
  • deterioration of data stored in the data cell is detected when the above-described predetermined value is different from the value read from the reference cell. Data deterioration is detected by a deterioration detection unit 320 described later.
  • these data cells and reference cells are formed on the same chip. This is because in order to detect the deterioration of data stored in the data cell by the reference cell, it is necessary to match both characteristics.
  • Data cell is accessed by page address in units of pages divided by page size. This page is 4223 bits in size, for example.
  • the reference cell can be arranged for each page. The reference data is written almost simultaneously with the data writing. This is because, when the writing times are greatly different, the detection accuracy of the data deterioration due to the reference data is lowered. It is assumed that the memory cell array 350 is composed of ReRAM that is a nonvolatile memory. Details of the configuration of the memory cell array 350 will be described later.
  • the deterioration detection unit 320 detects deterioration of data stored in the data cells of the memory cell array 350.
  • the deterioration detection unit 320 holds a predetermined value of the reference data described above, compares the value read from the reference cell with the held value, and detects data deterioration when the two do not match. .
  • the deterioration detection unit 320 notifies the memory controller 200 of data deterioration. Details of data deterioration will be described later.
  • the write control unit 310 controls writing of data and the like to the memory cell array 350.
  • the write control unit 310 interprets a write request requested by the memory controller 200 and writes data in units of pages. Thereafter, the result of writing is output to the memory controller 200.
  • the write control unit 310 further performs control of refreshing the memory cell array 350 and control of writing and rewriting reference data.
  • the refresh is a process of writing data after inverting the value stored in the data cell.
  • the refresh and the rewriting of the reference data are performed substantially simultaneously when the deterioration detection unit 320 detects data deterioration. This is to prevent a decrease in detection accuracy of data deterioration. Details of writing, refreshing, and rewriting of reference data in the writing control unit 310 will be described later.
  • the read controller 340 controls reading of data from the memory cell array 350.
  • the read control unit 340 interprets a read request requested by the memory controller 200 and reads data in units of pages. Thereafter, the read data is output to the memory controller 200. Details of reading in the reading control unit 340 will be described later.
  • the page buffer 380 is a buffer that temporarily holds write data and read data of the memory cell array 350.
  • the page buffer 380 holds data in units of pages.
  • the memory controller interface 330 is an interface for exchanging with the memory controller 200.
  • the request requested by the memory controller 200 is input to the memory 300 via the memory controller interface 330.
  • read data or the like based on the read request is output to the memory controller 200 via the memory controller interface 330.
  • the bus 301 is a bus that interconnects the units in the memory 300.
  • the write control unit 310 is an example of a write control unit described in the claims.
  • the read control unit 340 is an example of a read control unit described in the claims.
  • FIG. 4 is a diagram illustrating a configuration example of the memory cell according to the embodiment of the present technology. This figure shows the configuration of memory cells in the memory cell array 350 described in FIG. As shown in the figure, the memory element 351 and the MOS (Metal Oxide Semiconductor) transistor 352 constitute a 1-bit memory cell 353.
  • the storage element 351 is an element that stores data and the like.
  • the MOS transistor 352 is a transistor that drives the memory element 351.
  • One end of the storage element 351 is connected to a plate line that is a common signal line, and the other end is connected to the drain of the MOS transistor 352.
  • the gate of the MOS transistor 352 is connected to one of the plurality of word lines, and the source is connected to one of the plurality of bit lines.
  • the word lines and bit lines are wired in an XY matrix with respect to the MOS transistors 352 constituting the memory cells 353. Accordingly, by selecting one from each of the word line and the bit line and inputting a signal, one memory cell 353 is selected, and data is written or read. For example, when selecting the memory cell 353 shown at the left end in the figure, the word line # 0 and the bit line # 0 are selected.
  • the resistance value of the memory element 351 changes depending on the polarity of the applied voltage. For example, with reference to a terminal connected to the plate line of the memory element 351, a voltage (write voltage) having a positive polarity is applied to the other terminal of the memory element 351, so that the memory element 351 is in a high resistance state. be able to. By applying a write voltage having a reverse polarity to the memory element 351 in a high resistance state, the memory element 351 can be in a low resistance state.
  • HRS High Resistance State
  • LRS Low Resistance State
  • the data and the like are stored by associating these HRS and LRS with logical values.
  • the value “1” can be set when the storage element 351 is HRS
  • the value “0” can be set when the storage element 351 is LRS.
  • HRS corresponds to the value “0”
  • LRS corresponds to the value “1”. In this manner, data or the like can be written into the memory cell 353 by reversibly changing the resistance value of the memory element 351.
  • the process of transitioning the memory cell from the HRS to the LRS is referred to as a set process
  • the process of transitioning from the LRS to the HRS is referred to as a reset process.
  • These set processing and reset processing are performed simultaneously on the plurality of memory cells 353.
  • one of a plurality of word lines is selected. For example, the word line # 0 is selected and an on-voltage is applied. As a result, the MOS transistor 352 connected to the word line # 0 is turned on.
  • a bit line connected to the memory cell 353 to be set is selected, and a write voltage having a negative polarity is applied to the plate line.
  • the memory element 351 of the memory cell 353 connected to the selected bit line becomes LRS, and the value “1” is written.
  • the word line # 0 is selected and an on-voltage is applied as in the set process.
  • a bit line connected to the memory cell 353 to be reset is selected, and a write voltage having a positive polarity is applied to the plate line.
  • the memory element 351 of the memory cell 353 connected to the selected bit line becomes HRS, and the value “0” is written.
  • the number of memory cells 353 that can be written by one write operation corresponds to the page size described above.
  • the page size is assumed to be m bits. By such an operation, data is written from the memory cell array 350 in units of pages.
  • FIG. 5 is a diagram illustrating characteristics of the storage element 351 according to the embodiment of the present technology.
  • the figure shows the distribution of resistance values of the memory element 351.
  • a graph 401 in the figure represents characteristics in the case of LRS, and a graph 402 represents characteristics in the case of HRS.
  • the broken line of the figure represents the threshold value 403 which isolate
  • the read control unit 340 simultaneously applies a read voltage to the memory cells 353 constituting the page described with reference to FIG. For example, a read voltage having the same polarity as that of the reset process can be applied to the memory element 351. At the same time, the current flowing through each bit line is determined based on the threshold value 403. By such an operation, reading from the memory cell array 350 in units of pages is performed.
  • FIG. 6 is a diagram illustrating data writing in the embodiment of the present technology.
  • the figure shows a write operation to a data cell in units of pages.
  • the page size is assumed to be 8 bits.
  • data writing is performed in the order of transfer of write data, reading of data from the data cell, and writing of data.
  • data writing is performed by a set process and a reset process. These processes are performed using mask data for specifying the position of the target bit.
  • a nonvolatile memory such as ReRAM
  • ReRAM nonvolatile memory
  • the storage element 351 gradually deteriorates every time data is rewritten.
  • the memory element 351 that has deteriorated cannot perform normal writing and reading.
  • unnecessary set processing and reset processing are reduced. This can be done by limiting the bits of interest using mask data.
  • the position of the target bit is specified by the bit of the value “0”, and set processing and reset processing are performed on the bit.
  • the data cell of the page to be written is read (pre-read).
  • the data read at this time is referred to as pre-read data.
  • Mask data for reset processing and mask data for set processing are generated from the pre-read data and transferred write data.
  • the mask data for reset processing can be generated based on the following formula.
  • RMask ⁇ R
  • W RMask represents reset processing mask data.
  • R represents pre-read data.
  • W represents write data.
  • and ⁇ are operators representing a bitwise OR operation and a bitwise negation operation, respectively.
  • the writing After that, it is verified whether or not the writing is performed correctly. This can be determined based on whether or not the read data and the write data match when the page that has been written is read.
  • the write data held in the page buffer 380 can be used as the write data at the time of this verification. If the read data and the write data match, it is determined that the write has succeeded, and the write process ends. However, if the two do not match, it is determined that the writing has failed. In this case, the memory 300 outputs a response indicating that the writing has failed to the memory controller 200 as a response. Note that as a process in the case where writing fails, writing to the memory cell array 350 can be performed again.
  • the change in the resistance value of the memory element 351 described above is substantially proportional to the elapsed time from writing. Therefore, refresh is performed to rewrite the stored data before the data is destroyed. By performing this refresh, the resistance value of the memory element 351 can be returned to a normal value, and the destruction of stored data can be prevented.
  • data writing is performed in units of pages, and writing is performed only to the memory cell of the target bit by mask data. For this reason, when writing to a page is performed, the degree of change in the resistance value of the memory element 351 differs between the memory cell to be written and the memory cell not to be written. That is, the degree of change in the resistance value of the memory element 351 differs for each memory cell constituting the page. For this reason, the timing of executing the refresh becomes a problem.
  • the reference data is stored by arranging the reference cells described above for each page. Based on this reference data, the deterioration of the data of the corresponding page is detected, and refreshing is performed. Specifically, when data is first written in the page, a predetermined value, for example, a value “1” is written as reference data in the corresponding reference cell. Thereafter, when reading is performed on the page, reading from the reference cell is performed. As will be described later, a data cell and a reference cell are allocated for each page address, and when data is read from the page, the data and reference data are read simultaneously. At this time, when the value read from the reference cell is different from the written value, that is, when the value “0” is read, it is determined that the data deterioration is progressing, and refreshing is performed.
  • a predetermined value for example, a value “1” is written as reference data in the corresponding reference cell.
  • a data cell and a reference cell are allocated for each page address, and when data is read from the page, the data and reference data are read
  • the reference data is written again in the reference cell. This is to rewrite the degraded reference data.
  • the detection accuracy of data deterioration can be improved.
  • the predetermined value written in the reference cell as the reference data can be held in the deterioration detection unit 320 or the like as a default value in the memory 300.
  • writing to the memory cell is performed using the mask data
  • writing to the memory cell constituting the page is not executed even if writing is performed again using the data stored in the page. Therefore, after the value stored in the page is inverted, the data stored in the page is written to perform refresh. Thereby, rewriting can be performed in all memory cells constituting the page.
  • the predetermined value is written after the value different from the predetermined value is written. To explain in the above example, the value “1” is written after the value “0” is written. This is to perform writing under the same conditions as the data cell.
  • the data cell and the reference cell are allocated for each page address, it is necessary to prevent writing to the reference cell when writing to the page. This is to prevent unnecessary writing other than rewriting of the reference data described above.
  • This can be done by using mask data.
  • the bit corresponding to the reference cell is always set to the value “1”. For example, if the rightmost bit of the 8-bit mask data in the figure is a bit corresponding to the reference cell, the set processing mask data is changed to “11111011”. Note that the reset processing mask data in the figure does not need to be changed because the rightmost bit has the value “1”.
  • set processing and reset processing are performed using mask data in which bits other than the bit corresponding to the reference cell have the value “1”. Thereby, writing can be performed only to the reference cells in the page.
  • the predetermined value stored in the reference cell as the reference data it is preferable to adopt a value at which the data deteriorates quickly. This is because it is possible to detect the data deterioration by the reference cell before the data cell is destroyed due to the data deterioration, and the detection accuracy of the data deterioration can be improved.
  • a read voltage having the same polarity as that of the reset process is applied to the memory element 351 at the time of reading, the same effect as the reset process is generated each time reading is performed. For this reason, it can be considered that the change from LRS to HRS is likely to occur.
  • FIG. 7 is a diagram illustrating a configuration example of the memory cell array 350 according to the first embodiment of the present technology.
  • the memory cell array 350 shown in the figure includes a data cell 354 and a reference cell 355. Further, in the example shown in the figure, in the memory cell array 350, a 4223-bit data cell 354 and a 1-bit reference cell 355 are arranged for each page. In the figure, “RD” represents reference data.
  • the data cell stores 4096-bit data and 127-bit redundancy. In addition to parity, data management information such as data address conversion information can be stored in the redundancy.
  • FIG. 8 is a diagram illustrating an example of a processing procedure (memory controller) of the reading process according to the first embodiment of the present technology.
  • the process shown in FIG. 6 is started when a read command from the host computer 100 is input via the host interface 230.
  • the processor 210 interprets the read command, generates a read request based on the read command, and requests the memory 300 (step S901).
  • the memory controller 200 waits until read data is output from the memory 300 (step S902).
  • the ECC processing unit 240 performs ECC decoding on the output read data (step S903).
  • the ECC processing unit 240 further performs error correction. If this error correction fails, an ECC error occurs (step S904: Yes), and the processor 210 notifies the host computer 100 that the read command processing has ended abnormally (step S908). Thereafter, the reading process is terminated.
  • step S905 the processor 210 moves to the process of step S905.
  • step S905 the processor 210 outputs read data to the host computer 100 and notifies the host computer 100 that the processing of the read command has been completed normally (step S905).
  • step S910 the processor 210 rewrites and refreshes the reference data (step S910), and ends the reading process.
  • step S910 the processor 210 skips the process of step S910 and ends the reading process.
  • the memory controller 200 can perform the process of step S910 at an arbitrary timing when the memory 300 is notified of data deterioration. For example, when request requests to the memory 300 are continuous, the process of step S910 can be performed after the completion of these continuous processes. In such a case, the memory controller 200 needs to hold a page address where data deterioration is detected.
  • FIG. 9 is a diagram illustrating an example of a processing procedure (memory controller) of the reference data rewriting and refresh processing (step S910) according to the first embodiment of the present technology.
  • the processing procedure in FIG. 8 is a processing procedure corresponding to step S910 in FIG.
  • the processor 210 requests the memory 300 for a reference data rewrite request (step S911). This request is a request for requesting rewriting of reference data to a reference cell related to detection of data deterioration.
  • the processor 210 requests a refresh request from the memory 300 (step S912). This request is a request for refreshing a data cell of a page in which data deterioration is detected.
  • the processor 210 ends the reference data rewriting and refresh processing.
  • FIG. 10 is a diagram illustrating an example of a processing procedure (memory controller) of the writing process according to the first embodiment of the present technology.
  • the process shown in FIG. 11 is started when a write command from the host computer 100 is input via the host interface 230.
  • the processor 210 interprets a write command, generates a write request based on the write command, and requests the memory 300 (step S921).
  • the memory controller 200 stands by until a response is received from the memory 300 (step S922), and after receiving the response (step S922: Yes), the process proceeds to step S924.
  • step S924 when the response indicates a write error (step S924: Yes), the alternative processing unit 260 determines whether the alternative processing is possible (step S926).
  • step S926: Yes when the alternative process is possible (step S926: Yes), the alternative process by the alternative processing unit 260 is performed, and an alternative write request based on the replaced page address is requested (step S927).
  • This request is a request for requesting rewriting to the memory 300 based on the replaced page address.
  • the processor 210 moves to processing from step S922.
  • step S926: No if alternative processing is not possible in step S926 (step S926: No), the processor 210 notifies the host computer 100 that the write command has ended abnormally (step S928), and ends the write processing. To do.
  • step S924 determines whether the response has been completed normally (step S925).
  • step S929: Yes when data deterioration is notified from the memory 300 (step S929: Yes), the processor 210 performs the reference data rewriting and refresh processing (step S910) described in FIG. 9 and ends the writing processing. To do.
  • step S929: No when the data deterioration is not notified from the memory 300 (step S929: No), the processor 210 skips the process of step S910 and ends the write process.
  • the memory controller 200 can perform the process of step S910 at an arbitrary timing when there is a notification of data deterioration from the memory 300, as in the case of the read process.
  • FIG. 11 is a diagram illustrating an example of a processing procedure (memory) of the reading process according to the first embodiment of the present technology.
  • the processing shown in FIG. 10 is started when a read request from the memory controller 200 is input via the memory controller interface 330.
  • the read control unit 340 reads data (step S931).
  • the read control unit 340 reads the data of the page address based on the read request from the memory cell array 350 and causes the page buffer 380 to hold it.
  • reference data is also read from the reference cell. That is, reference data is output from the reference cell.
  • the read control unit 340 outputs the read data to the memory controller 200 (step S932). This data is output via the memory controller interface 330.
  • the deterioration detection unit 320 determines whether or not the data is deteriorated (step S933). This is determined by whether or not a value different from a predetermined value written as reference data is read from the reference cell corresponding to the page to be read. As a result, if the data has deteriorated (step S933: Yes), the read control unit 340 notifies the memory controller 200 of the data deterioration as a response (step S934). The reading process ends. On the other hand, when the data has not deteriorated (step S933: No), the read control unit 340 skips the process of step S934 and ends the read process.
  • FIG. 12 is a diagram illustrating an example of a processing procedure (memory) of the writing process according to the first embodiment of the present technology.
  • the process shown in FIG. 6 is started when a write request from the memory controller 200 is input via the memory controller interface 330.
  • the write control unit 310 transfers the write data accompanying the write request to the page buffer 380 (step S941).
  • the write control unit 310 performs the pre-read described with reference to FIG. 6 (step S942).
  • page address data based on the write request is read from the memory cell array 350.
  • reference data is output from the reference cell.
  • step S943 When the deterioration detection unit 320 detects data deterioration (step S943: Yes), the write control unit 310 notifies the memory controller 200 of the data deterioration as a response (step S944). Thereafter, the writing control unit 310 proceeds to the process of step S945.
  • step S943 when data deterioration is not detected (step S943: No), the writing control unit 310 skips the process of step S944 and proceeds to the process of step S945. In step S945, the write control unit 310 writes data (step S945).
  • This is a process configured by the mask data generation, reset process, and set process described in FIG.
  • step S947 the writing control unit 310 performs verification. As described above, this is performed by reading from the data cell to be written and determining whether or not the read data matches the write data.
  • the write control unit 310 notifies the memory controller 200 of the result of this verification as a response (step S948), and ends the write process.
  • FIG. 13 is a diagram illustrating an example of a processing procedure (memory) of the reference data rewriting process according to the first embodiment of the present technology.
  • the processing shown in FIG. 11 is started when a reference data rewrite request from the memory controller 200 is input via the memory controller interface 330.
  • the write control unit 310 writes the inverted value of the reference data in the reference cell (step S952).
  • the write control unit 310 writes to the reference cell of the page address that is the target of the read request or write request.
  • the write control unit 310 writes the reference data to the reference cell (step S953). Thereafter, the writing control unit 310 ends the reference data rewriting process.
  • FIG. 14 is a diagram illustrating an example of a processing procedure (memory) of the refresh processing according to the first embodiment of the present technology.
  • the process shown in FIG. 11 is started when a refresh request from the memory controller 200 is input via the memory controller interface 330.
  • the write control unit 310 reads data from a page to be refreshed (step S961). The data read at this time is held in the page buffer 380.
  • the write control unit 310 writes the value “1” to all the bits of the data cells constituting the page (step S964).
  • the write control unit 310 writes the value “0” to all the bits of the data cells constituting the page (step S965).
  • the write control unit 310 writes the data read in step S961 (data held in the page buffer 380) (step S969), and ends the refresh process.
  • a reference cell is arranged for each page, data deterioration in the data cell is detected based on the reference data stored in the reference cell, and refreshing is performed. Thereby, the refresh timing can be acquired by a simple process.
  • the value of the data cell is inverted by performing the writing of the value “1” and the value “0” twice during the refresh.
  • the value of the data cell is inverted by one write. Thereby, the refresh process can be simplified.
  • FIG. 15 is a diagram illustrating an example of a processing procedure (memory) of the refresh process according to the second embodiment of the present technology.
  • the write control unit 310 reads data from a page to be refreshed (step S971).
  • the write control unit 310 writes data in which all the bits of the read data are inverted (step S976).
  • the write control unit 310 writes the read data (step S979), and ends the refresh process.
  • Other processing in the memory 300 is the same as the processing described with reference to FIGS.
  • Other configurations of the memory controller 200 and the memory 300 are the same as the configurations of the memory controller 200 and the memory 300 described in the first embodiment of the present technology, and thus description thereof is omitted.
  • the value of the data cell can be inverted by one write (step S976).
  • the refresh process can be simplified.
  • the memory controller 200 requests a reference data rewrite and refresh request from the memory 300 instead of the reference data rewrite request and the refresh request. Specifically, instead of steps S911 and S912 described with reference to FIG. 9, reference data rewrite and refresh requests are requested to the memory 300.
  • FIG. 16 is a diagram illustrating an example of a processing procedure of reference data rewriting and refresh processing according to the third embodiment of the present technology.
  • the write control unit 310 reads data from a page to be refreshed (step S981).
  • the write control unit 310 writes the inverted value of the reference data to the data cell and the reference cell (step S982).
  • the write control unit 310 writes reference data to the data cell and the reference cell (step S983).
  • the writing control unit 310 writes the read data (step S989), and ends the reference data rewriting and refresh processing.
  • Other processing in the memory 300 is the same as the processing described in FIGS. 11 and 12, and thus description thereof is omitted.
  • Other configurations of the memory controller 200 and the memory 300 are the same as the configurations of the memory controller 200 and the memory 300 described in the first embodiment of the present technology, and thus description thereof is omitted.
  • the reference data can be rewritten and refreshed by a single request.
  • the process of the memory controller 200 can be simplified.
  • writing is performed by applying the same write voltage to the data cell and the reference cell.
  • a write voltage having a voltage different from that of the data cell is applied to the reference cell.
  • FIG. 17 is a diagram illustrating characteristics of the storage element 351 according to the fourth embodiment of the present technology.
  • This figure shows the characteristics of the storage element 351 of the reference cell according to the fourth embodiment of the present technology.
  • the reference cell is written by applying a write voltage different from that of the data cell.
  • the write voltage different from the data cell is referred to as a second write voltage.
  • writing is performed by a set process and a reset process.
  • the set process a write voltage having the same voltage as the data cell is applied to the reference cell.
  • the reset process a write voltage lower than the write voltage of the data cell is applied to the reference cell.
  • the low voltage represents a voltage having a low absolute value.
  • This write voltage corresponds to the above-mentioned second write voltage. Since the write voltage in the reset process is lower than the write voltage in the set process, as shown in the figure, the resistance value of the memory element 351 at the time of HRS decreases, and the position of the graph 404 in the figure is Compared to the graph 404 described with reference to FIG.
  • the alternate long and short dash line shown in the figure represents the position of the graph 404 in FIG.
  • the HRS having a resistance value close to the threshold value deteriorates faster than the LRS.
  • a value corresponding to this rapidly deteriorated state is set to a predetermined value of the reference data. For example, when the HRS corresponds to the value “0”, the value “0” is written in the reference cell as a predetermined value of the reference data. Before the data cell is destroyed due to the data deterioration, the data deterioration by the reference cell can be detected, and the detection accuracy of the data deterioration can be improved.
  • the reference data whose deterioration is accelerated by using the second write voltage different from the write voltage in the data cell to perform writing is used. Thereby, the detection accuracy of data degradation can be improved.
  • a write voltage different from that of the data cell is applied to the reference cell during the reset process.
  • a write voltage different from that of the data cell may be applied to the reference cell during the set process.
  • the memory element 351 immediately after manufacture is in the HRS state.
  • a write voltage is applied to the memory cell 353 to make a transition to LRS.
  • This process is called forming.
  • the write voltage applied at this time is called a forming voltage, and is a voltage having a value higher than the normal write voltage.
  • the memory element 351 becomes an LRS represented by the graph 401 in FIG.
  • the LRS has the same characteristics in the data cell and the reference cell.
  • the voltage applied during the reference cell set processing and reset processing is set to the second write voltage having a lower absolute value than the write voltage in the data cell.
  • HRS represented by the graph 404 demonstrated in FIG.
  • FIG. 18 is a diagram illustrating characteristics of the storage element 351 according to the fifth embodiment of the present technology.
  • This figure shows the characteristics of the storage element 351 of the reference cell according to the fifth embodiment of the present technology.
  • reading from the reference cell is performed based on a threshold different from that of the data cell.
  • a threshold different from the data cell is referred to as a second threshold.
  • the threshold value 403 in the figure is closer to the graph 402 than the threshold value 403 described in FIG.
  • This threshold 403 corresponds to the second threshold described above.
  • the alternate long and short dash line shown in the figure represents the position of the threshold value 403 in FIG. For this reason, degradation of HRS is faster than that of LRS.
  • the reference data whose deterioration has been accelerated is used by reading from the reference cell based on the second threshold different from the threshold in the data cell. Thereby, the detection accuracy of data degradation can be improved.
  • the memory 300 detects data deterioration.
  • the memory controller 200 detects data deterioration and performs processing such as refresh. Thereby, it is possible to reduce processing for detecting data deterioration in the memory 300.
  • FIG. 19 is a diagram illustrating a configuration example of the memory controller 200 according to the sixth embodiment of the present technology. This memory controller 200 is different from the memory controller 200 described with reference to FIG. 2 in that it further includes a deterioration detection unit 220.
  • the deterioration detection unit 220 detects deterioration of data stored in the memory 300.
  • the memory controller 200 adds a predetermined value to the data as reference data for each page of the memory 300 and performs writing. In the reading process, when the read value is different from the value written as the reference data, the deterioration detecting unit 220 detects the deterioration of the data in the read target page.
  • FIG. 20 is a diagram illustrating a configuration example of the memory 300 according to the sixth embodiment of the present technology. Compared with the memory 300 described with reference to FIG. 2, the memory 300 does not need to include the deterioration detection unit 320.
  • the memory controller 200 processes a predetermined area of data constituting a page as a reference data storage area. Specifically, when writing, the memory controller 200 writes data in which the reference data is added to the bit position corresponding to the reference data storage area as write data in the memory 300. Thereafter, when reading, the memory controller 200 deletes the reference data from the read data and outputs the remaining data to the host computer as read data. At the same time, the deterioration detector 220 detects data deterioration. The reference data rewriting and refreshing processes are executed by a normal writing process. As described above, since the memory controller 200 detects data deterioration, unlike the storage device according to the first embodiment of the present technology, data deterioration cannot be detected during pre-reading at the time of writing. . However, in the sixth embodiment of the present technology, a normal nonvolatile memory can be used as the memory 300 to configure a storage device.
  • FIG. 21 is a diagram illustrating an example of a processing procedure (memory controller) of a reading process according to the sixth embodiment of the present technology.
  • the processor 210 interprets the read command, generates a read request based on the read command, and requests the memory 300 (step S801).
  • the memory controller 200 waits until read data is output from the memory 300 (step S802).
  • the ECC processing unit 240 performs ECC decoding, error detection, and error correction on the output read data. If this error correction fails, an ECC error occurs (step S804: Yes), and the processor 210 notifies the host computer 100 that the read command processing has ended abnormally (step S808). Thereafter, the reading process is terminated.
  • step S804 when no error is detected in the read data or when the error correction is successful (step S804: No), the processor 210 moves to the process of step S805.
  • step S805 the processor 210 outputs read data to the host computer 100, and notifies the host computer 100 that the processing of the read command has been completed normally (step S805).
  • step S809: Yes when the deterioration detection unit 220 detects data deterioration (step S809: Yes), the processor 210 performs rewriting and refreshing of reference data (step S810). Thereafter, the processor 210 ends the reading process.
  • step S809 when the deterioration detection unit 220 does not detect data deterioration (step S809: No), the processor 210 skips the process of step S810 and ends the reading process.
  • FIG. 22 is a diagram illustrating an example of a processing procedure (memory controller) of the reference data rewriting and refresh processing (step S810) according to the sixth embodiment of the present technology.
  • the processing procedure in the figure is a processing procedure corresponding to step S810 in FIG.
  • the processor 210 writes the inverted value of the reference data (step S812). This is performed by writing write data in which all bits are inverted values of the reference data to the corresponding page.
  • the processor 210 writes reference data (step S813). This is done by writing write data with all bits as reference data to the corresponding page.
  • the processor 210 writes data obtained by adding reference data to the data read from the memory 300 (step S819), and ends the reference data rewriting and refresh processing.
  • FIG. 23 is a diagram illustrating an example of a processing procedure (memory controller) of a writing process according to the sixth embodiment of the present technology.
  • the processor 210 interprets the write command, generates a write request based on the write command, and requests the memory 300 (step S821).
  • the memory controller 200 waits until it receives a response from the memory 300 (step S822). If the received response indicates a write error (step S824: Yes), the replacement processing unit 260 determines whether the replacement process is possible (step S826). If substitution processing is possible (step S826: Yes), substitution processing by the substitution processing unit 260 is performed, and a substitution write request based on the substituted page address is requested (step S827).
  • step S826 No
  • step S828 the processor 210 notifies the host computer 100 that the write command has ended abnormally (step S828), and ends the write processing. To do.
  • step S824 if the response does not indicate a write error (step S824: No), the processor 210 notifies the host computer 100 that the write command has been completed normally (step S825). Thereafter, the processor 210 ends the writing process.
  • FIG. 24 is a diagram illustrating an example of a processing procedure (memory) of a reading process according to the sixth embodiment of the present technology.
  • the read control unit 340 reads data (step S831).
  • the read control unit 340 outputs the read data to the memory controller 200 (step S832), and ends the read process.
  • FIG. 25 is a diagram illustrating an example of a processing procedure (memory) of a writing process according to the sixth embodiment of the present technology.
  • the write control unit 310 transfers the write data accompanying the write request to the page buffer 380 (step S841).
  • the write control unit 310 performs pre-read (step S842).
  • the write control unit 310 writes data (step S845).
  • the writing control unit 310 performs verification (step S847).
  • the write control unit 310 notifies the result of this verification to the memory controller 200 (step S848) and ends the write process.
  • detection of data deterioration in the memory controller is performed, so detection of data deterioration in the memory 300 can be omitted. Thereby, the process of the memory 300 can be simplified.
  • a method of preventing writing to the reference cell by mask data can be used when writing data.
  • a process of preventing writing to an area (bit) in which reference data is stored by mask data is employed in data writing (step S845).
  • the reference data rewriting and refresh processing is performed based on a request requested by the memory controller 200.
  • the memory controller 200 executes the process of step S910 described in FIG. 9 instead of the process of step S810 described in FIG.
  • the memory 300 is configured to execute a request for requesting rewriting of reference data and a request for requesting refresh. Thereby, rewriting of the reference data at the time of the above-described data writing can be prevented, and the detection accuracy of data deterioration by the memory controller 200 can be improved.
  • the memory controller 200 requests the memory 300 to perform a process such as refresh.
  • the memory 300 performs processing such as refresh independently. Thereby, processing such as refresh in the memory controller 200 can be reduced.
  • the memory controller 200 described in FIG. 2 can be used as the memory controller 200 according to the seventh embodiment of the present technology.
  • the memory 300 the memory 300 described with reference to FIG. 3 can be used.
  • FIG. 26 is a diagram illustrating an example of a processing procedure (memory controller) of a reading process according to the seventh embodiment of the present technology.
  • the processor 210 interprets a read command, generates a read request based on the read command, and requests the memory 300 (step S701).
  • the memory controller 200 waits until read data is output from the memory 300 (step S702).
  • the ECC processing unit 240 performs ECC decoding, error detection, and error correction on the output read data (step S703). If this error correction fails, an ECC error occurs (step S704: Yes), the processor 210 notifies the host computer 100 that the processing of the read command has ended abnormally (step S708), and the read processing ends.
  • step S704 the processor 210 moves to the process of step S705.
  • step S705 the processor 210 outputs read data to the host computer 100, notifies the host computer 100 that the processing of the read command has been completed normally (step S705), and ends the read processing.
  • the processing procedure of the writing process in the memory controller 200 is the same as the processing procedure of the writing process described in FIG.
  • FIG. 27 is a diagram illustrating an example of a processing procedure (memory) of a reading process according to the seventh embodiment of the present technology.
  • the read control unit 340 reads data (step S731).
  • the read control unit 340 outputs the read data to the memory controller 200 (step S732).
  • the deterioration detection unit 320 determines whether the data is deteriorated (step S733). As a result, if the data has deteriorated (step S733: Yes), the read control unit 340 performs reference data rewriting and refresh processing (step S750).
  • the read control unit 340 writes the read data into the data cell (step S739). Thereafter, the read control unit 340 ends the read process.
  • the read control unit 340 skips the processes of steps S750 and S739 and ends the read process.
  • FIG. 28 is a diagram illustrating an example of a processing procedure (memory) of the reference data rewriting and refresh processing (step S750) according to the seventh embodiment of the present technology.
  • the processing procedure in the figure is a processing procedure corresponding to step S750 in FIG.
  • the write control unit 310 writes the inverted value of the reference data in the data cell and the reference cell (step S752). This is performed by writing write data in which all bits are inverted values of the reference data to the corresponding data cell and reference cell.
  • the write control unit 310 writes the reference data to the data cell and the reference cell (step S753). This is performed by writing write data with all bits as reference data to the corresponding data cell and reference cell.
  • the writing control unit 310 ends the reference data rewriting and refresh processing.
  • FIG. 29 is a diagram illustrating an example of a processing procedure (memory) of a writing process according to the seventh embodiment of the present technology.
  • the write control unit 310 transfers write data accompanying the write request to the page buffer 380 (step S741).
  • the write control unit 310 performs pre-read (step S742).
  • the write control unit 310 performs rewriting and refreshing of reference data (step S750). Thereafter, the writing control unit 310 proceeds to the process of step S745.
  • step S743 when data deterioration is not detected (step S743: No), the write control unit 310 skips the process of step S750 and proceeds to the process of step S745. In step S745, the write control unit 310 writes data (step S745). Next, the write control unit 310 performs verification (step S747), notifies the verification result to the memory controller 200 (step S748), and ends the write process.
  • the memory 300 since the memory 300 performs data deterioration detection, reference data rewriting, and refresh processing, the processing of the memory controller 200 can be simplified. .
  • the memory cell array 350 in which one reference cell is arranged for each page is used.
  • the memory cell array 350 in which a plurality of reference cells are arranged for each page is used. Thereby, the detection accuracy of data degradation can be improved.
  • FIG. 30 is a diagram illustrating a configuration example of the memory cell array 350 according to the eighth embodiment of the present technology.
  • the memory cell array 350 shown in FIG. 3 is configured by arranging a 3-bit reference cell 355 for each page. Based on the reference data read from these reference cells, the deterioration detector 320 detects data deterioration.
  • the deterioration detection unit 320 according to the eighth embodiment of the present technology detects deterioration based on the result of majority calculation of reference data. Specifically, when a value different from a predetermined value written as reference data is read from a majority of reference cells, deterioration detector 320 determines that the data has deteriorated.
  • the characteristics of a plurality of reference cells are leveled, and data deterioration is detected based on the characteristics.
  • the characteristic variation of the reference cell is large, it is possible to improve the detection accuracy of data deterioration.
  • the number of reference cells arranged for each page needs to be an odd number.
  • the majority operation is performed, but by comparing the number of reference cells from which a value different from the written predetermined value is read with a predetermined threshold value, Data degradation may be detected. Even in this case, the variation in the characteristics of the reference cells is leveled. For example, 10 reference cells are arranged for each page, and 7 can be selected as the threshold value. In this case, data deterioration is detected when different values are read in seven or more reference cells.
  • FIG. 31 is a diagram illustrating a configuration example of the memory cell array 350 according to the ninth embodiment of the present technology.
  • the memory cell array 350 shown in the figure is configured by arranging a reference cell 355 for each block composed of two pages.
  • [Memory access method] (A) When accessing a page in which no reference cell is arranged For example, when accessing a page of an odd address among the pages shown in FIG. 31, processing is performed as follows.
  • the memory controller 200 executes the read process described in FIG. 26 and the write process described in FIG. Further, the memory 300 executes the reading process described in FIG. 24 and the writing process described in FIG. (B) When accessing a page in which a reference cell is arranged For example, when accessing an even-addressed page among the pages shown in FIG. 31, the following processing is performed.
  • the memory controller 200 executes the read process described in FIG. 8 and the write process described in FIG. Further, the memory 300 executes the read process described in FIG. 11 and the write process described in FIG. When data deterioration is detected, all pages included in the block are refreshed.
  • the memory 300 can be accessed. Since this access is performed in units of pages, the degree of data deterioration differs between the page in which the reference cells are arranged in the block shown in FIG. 31 and the page in which the reference cells are not arranged. However, since these pages are adjacent to each other, there is a high possibility that data used for the same application is stored. For this reason, it can be considered that the degree of deterioration of data stored in these pages is substantially equal. Thereby, it is possible to detect the deterioration of data stored in the block by one reference cell.
  • the number of pages constituting a block is not limited to the example shown in FIG. For example, 4 pages can be made into one block.
  • a block can be configured by one memory chip.
  • the deterioration of all data stored in the memory chip is detected by one reference cell.
  • the arrangement of the reference cells is not limited to the example shown in FIG.
  • the number of reference cells can be reduced, and the memory cell array 350 can be reduced. It can be downsized.
  • data deterioration is detected based on reference data read from a reference cell, and refreshing is performed.
  • the refresh timing can be acquired by a simple process.
  • 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 data cell for storing written data A non-volatile memory comprising: a reference cell that is formed on the same chip as the data cell, stores a predetermined value as reference data substantially simultaneously with the data, and outputs the reference data in order to detect deterioration of the data.
  • the nonvolatile memory according to (1) further including a deterioration detection unit that detects the deterioration of the data when a value different from the predetermined value is read from the reference cell.
  • the above (2) further includes a write control unit that performs refresh control for rewriting the data in the data cell at the time of the detection in the deterioration detection unit and control for rewriting the reference data substantially simultaneously.
  • Non-volatile memory as described.
  • the data cell and the reference cell are read by determining a read current that is a current flowing when a read voltage is applied based on a threshold value, A read control unit that performs reading from the reference cell by determination based on a second threshold different from the threshold at the time of reading from the data cell and reading from the data cell;
  • the write controller rewrites the reference data by writing the predetermined value as reference data after writing a value different from the predetermined value.
  • the non-volatile memory according to. (9) The data cell is accessed in units of pages divided by page size, The reference cell is arranged for each page, The nonvolatile memory according to any one of (2) to (8), wherein the deterioration detection unit performs the detection for each page. (10) The nonvolatile memory according to (9), wherein a plurality of the reference cells are arranged for each page. (11) The nonvolatile memory according to (10), wherein the deterioration detection unit performs the detection based on a majority operation of the plurality of reference data read from the plurality of reference cells.
  • the data cell is accessed in units of pages divided by page size,
  • the reference cell is arranged for each block composed of a plurality of the pages,
  • the non-volatile memory according to any one of (2) to (8), wherein the deterioration detection unit performs the detection for each block.
  • a data cell for storing written data and the reference data formed on the same chip as the data cell and storing a predetermined value as reference data substantially simultaneously with the data to detect deterioration of the data
  • a memory controller including a deterioration detecting unit that detects deterioration of the data when a value different from the predetermined value is read from the reference cell of a nonvolatile memory including a reference cell that outputs the data.
  • a data cell for storing written data
  • a reference cell that is formed on the same chip as the data cell, stores a predetermined value as reference data substantially simultaneously with the data, and outputs the reference data to detect deterioration of the data
  • a storage device comprising: a deterioration detection unit that detects deterioration of the data when a value different from the predetermined value is read from the reference cell.
  • a data cell for storing written data A reference cell that is formed on the same chip as the data cell, stores a predetermined value as reference data substantially simultaneously with the data, and outputs the reference data to detect deterioration of the data
  • a storage device comprising a deterioration detection unit that detects the deterioration of the data when a value different from the predetermined value is read from the reference cell;
  • An information processing system comprising: a host computer that accesses the storage device.
  • a method for controlling a non-volatile memory comprising a reference data output procedure for outputting.
  • Host computer 110 210 Processor 120, 330 Memory controller interface 200 Memory controller 220 Degradation detection unit 230 Host interface 240 ECC processing unit 250 Address conversion unit 260 Alternative processing unit 270 Memory interface 280 Buffer 300 Memory 310 Write control unit 320 Deterioration detection Section 340 Read control section 350 Memory cell array 351 Memory element 352 MOS transistor 353 Memory cell 354 Data cell 355 Reference cell 380 Page buffer

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

不揮発メモリにおけるデータの劣化によるデータの破壊を防止するためのリフレッシュを行うタイミングを簡便な処理により取得する。 不揮発メモリは、データセルおよびリファレンスセルを備える。この不揮発メモリにおいて、データセルは、書き込まれたデータを記憶する。リファレンスセルは、データセルと同一チップに形成されてデータと略同時に所定の値をリファレンスデータとして記憶してデータの劣化を検出するためにリファレンスデータを出力する。

Description

不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
 本技術は、不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法に関する。詳しくは、不揮発メモリおよび不揮発メモリに対してデータの書込みを行うメモリコントローラ、記憶装置、情報処理システムおよびこれらにおける制御方法に関する。
 従来、情報処理装置の記憶装置として不揮発メモリが使用されている。この不揮発メモリは、電源の供給の有無に関わらずデータの記憶が可能であり、データストレージ等の用途に広く使用されている。このような不揮発メモリの例として、EEPROM(Electrically Erasable and Programmable Read Only Memory)およびNAND型フラッシュメモリ等を挙げることができる。また、このような不揮発メモリの他の例として、MRAM(Magnetoresistive RAM)およびReRAM(Resistance RAM)等を挙げることができる。これらの不揮発メモリにおいて、データを長期間記憶した場合には、データの記憶状態が徐々に変化する、いわゆるデータの劣化を生じることが知られている。このデータの劣化が進行すると、当初記憶させたデータとは異なるデータが読み出される状態になり、記憶データが破壊される。これを防ぐために、例えば、データの劣化による記憶データの破壊に至る前に、データの書直しであるリフレッシュを行い、データの記憶状態を元に戻すシステムが提案されている(例えば、特許文献1参照。)。
米国特許出願公開第2012/0278533号明細書
 上述の従来技術では、NAND型フラッシュメモリを用いた半導体記憶装置において、アクセスの単位であるブロック毎の劣化度およびデータ読出しの頻度であるリード頻度に基づいて信頼性維持期間を取得する。次に、この信頼性維持期間に応じて、ブロック毎にリフレッシュを行う。すなわち、ブロックに記憶されたデータの信頼性維持期間が経過する前にリフレッシュを行う。これにより、記憶データの破壊を防止する。しかし、信頼性維持期間を取得するためには、ブロック毎の劣化度やリード頻度を記録しておく必要がある。このため、上述の従来技術には、リフレッシュを行うタイミングを取得するための処理が複雑になるという問題がある。
 本技術はこのような状況に鑑みて生み出されたものであり、不揮発メモリにおいて、リフレッシュを行うタイミングを簡便な処理により取得することを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、書き込まれたデータを記憶するデータセルと、上記データセルと同一チップに形成されて上記データと略同時に所定の値をリファレンスデータとして記憶して上記データの劣化を検出するために上記リファレンスデータを出力するリファレンスセルとを具備する不揮発メモリおよび不揮発メモリの制御方法である。これにより、リファレンスセルからデータの劣化を検出するためのリファレンスデータが出力されるという作用をもたらす。
 また、この第1の側面において、上記所定の値とは異なる値が上記リファレンスセルから読み出された際に上記データの劣化の検出を行う劣化検出部をさらに具備してもよい。これにより、所定の値とは異なる値がリファレンスセルから読み出された際に劣化検出部によりデータの劣化が検出されるという作用をもたらす。
 また、この第1の側面において、上記劣化検出部における上記検出の際に上記データセルのデータを書直すリフレッシュの制御と上記リファレンスデータの書直しの制御とを略同時に行う書込み制御部をさらに具備してもよい。これにより、リフレッシュとリファレンスデータの書直しが略同時に行われるという作用をもたらす。
 また、この第1の側面において、上記書込み制御部は、上記データセルへの書込みと上記劣化が早い上記所定の値を上記リファレンスデータとする上記リファレンスセルへの書込みとをさらに行ってもよい。これにより、劣化が早いリファレンスデータによりデータの劣化の検出が行われるという作用をもたらす。
 また、この第1の側面において、上記データセルおよび上記リファレンスセルは、書込み電圧を印加することにより書込みが行われ、上記書込み制御部は、上記データセルへの上記書込み電圧とは異なる第2の書込み電圧を印加することにより上記リファレンスデータを上記リファレンスセルに書き込んでもよい。これにより、リファレンスデータの書込みの際に第2の書込み電圧がリファレンスセルに印加されるという作用をもたらす。
 また、この第1の側面において、上記データセルおよび上記リファレンスセルは、読出し電圧が印加された際に流れる電流である読出し電流を閾値に基づいて判別することにより読出しが行われ、上記データセルからの読出しと当該データセルからの読出しの際の上記閾値とは異なる第2の閾値に基づく判別による上記リファレンスセルからの読出しとを行う読出し制御部をさらに具備し、上記書込み制御部は、上記第2の閾値により近い値の上記読出し電流となる上記所定の値を上記リファレンスデータとして書き込んでもよい。これにより、第2の閾値に近い値の読出し電流となる値がリファレンスデータとしてリファレンスセルに書き込まれ、この第2の閾値に基づいてリファレンスセルからの読出しが行われるという作用をもたらす。
 また、この第1の側面において、上記書込み制御部は、上記データセルに記憶された値を反転させた後に上記データを書き込むことにより上記リフレッシュを行ってもよい。これにより、リフレッシュの際にデータセルのデータが反転されるという作用をもたらす。
 また、この第1の側面において、上記書込み制御部は、上記所定の値とは異なる値を書き込んだ後に上記所定の値をリファレンスデータとして書き込むことにより上記リファレンスデータの書直しを行ってもよい。これにより、リファレンスデータの書直しの際にリファレンスセルの値が反転されるという作用をもたらす。
 また、この第1の側面において、上記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、上記リファレンスセルは、上記ページ毎に配置され、上記劣化検出部は、上記ページ毎に上記検出を行ってもよい。これにより、ページ毎にデータの劣化が検出されるという作用をもたらす。
 また、この第1の側面において、上記リファレンスセルは、上記ページ毎に複数配置されてもよい。これにより、複数のリファレンスセルによりページ毎にデータの劣化が検出されるという作用をもたらす。
 また、この第1の側面において、上記劣化検出部は、上記複数のリファレンスセルから読み出された複数の上記リファレンスデータの多数決演算に基づいて上記検出を行ってもよい。これにより、複数のリファレンスセルの多数決演算の結果に基づいてデータの劣化が検出されるという作用をもたらす。
 また、この第1の側面において、上記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、上記リファレンスセルは、複数の上記ページからなるブロック毎に配置され、上記劣化検出部は、上記ブロック毎に上記検出を行ってもよい。これにより、複数のページにより構成されたブロック毎にデータの劣化が検出されるという作用をもたらす。
 また、本技術の第2の側面は、書き込まれたデータを記憶するデータセルと上記データセルと同一チップに形成されて上記データと略同時に所定の値をリファレンスデータとして記憶して上記データの劣化を検出するために上記リファレンスデータを出力するリファレンスセルとを備える不揮発メモリの上記リファレンスセルから上記所定の値とは異なる値が読み出された際に上記データの劣化を検出する劣化検出部を具備するメモリコントローラである。これにより、リファレンスセルから出力されたリファレンスデータに基づいてデータの劣化が検出されるという作用をもたらす。
 また、本技術の第3の側面は、書き込まれたデータを記憶するデータセルと、上記データセルと同一チップに形成されて上記データと略同時に所定の値をリファレンスデータとして記憶して上記データの劣化を検出するために上記リファレンスデータを出力するリファレンスセルと、上記所定の値とは異なる値が上記リファレンスセルから読み出された際に上記データの劣化の検出を行う劣化検出部とを具備する記憶装置である。これにより、リファレンスセルから出力されたリファレンスデータに基づいてデータの劣化が検出されるという作用をもたらす。
 また、本技術の第4の側面は、書き込まれたデータを記憶するデータセルと、上記データセルと同一チップに形成されて上記データと略同時に所定の値をリファレンスデータとして記憶して上記データの劣化を検出するために上記リファレンスデータを出力するリファレンスセルと、上記所定の値とは異なる値が上記リファレンスセルから読み出された際に上記データの劣化の検出を行う劣化検出部とを備える記憶装置と、上記記憶装置にアクセスするホストコンピュータとを具備する情報処理システムである。これにより、リファレンスセルから出力されたリファレンスデータに基づいてデータの劣化が検出されるという作用をもたらす。
 本技術によれば、不揮発メモリにおいて、リフレッシュを行うタイミングを簡便な処理により取得するという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理装置の構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラ200の構成例を示す図である。 本技術の第1の実施の形態におけるメモリ300の構成例を示す図である。 本技術の実施の形態におけるメモリセルの構成例を示す図である。 本技術の実施の形態における記憶素子351の特性を示す図である。 本技術の実施の形態におけるデータの書込みを示す図である。 本技術の第1の実施の形態におけるメモリセルアレイ350の構成例を示す図である。 本技術の第1の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS910)の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態におけるリファレンスデータ書直し処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態におけるリフレッシュ処理の処理手順(メモリ)の一例を示す図である。 本技術の第2の実施の形態におけるリフレッシュ処理の処理手順(メモリ)の一例を示す図である。 本技術の第3の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理の処理手順の一例を示す図である。 本技術の第4の実施の形態における記憶素子351の特性を示す図である。 本技術の第5の実施の形態における記憶素子351の特性を示す図である。 本技術の第6の実施の形態におけるメモリコントローラ200の構成例を示す図である。 本技術の第6の実施の形態におけるメモリ300の構成例を示す図である。 本技術の第6の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第6の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS810)の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第6の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第6の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。 本技術の第6の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。 本技術の第7の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第7の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。 本技術の第7の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS750)の処理手順(メモリ)の一例を示す図である。 本技術の第7の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。 本技術の第8の実施の形態におけるメモリセルアレイ350の構成例を示す図である。 本技術の第9の実施の形態におけるメモリセルアレイ350の構成例を示す図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(メモリがデータの劣化の検出を行う場合の例)
 2.第2の実施の形態(1度の書込みによりリフレッシュを行う場合の例)
 3.第3の実施の形態(1度のリクエストによりリファレンスデータの書直しおよびリフレッシュ処理を行う場合の例)
 4.第4の実施の形態(データセルとは異なる書込み電圧をリファレンスセルに印加する場合の例)
 5.第5の実施の形態(データセルとは異なる閾値に基づいてリファレンスセルからの読出しを行う場合の例)
 6.第6の実施の形態(メモリコントローラがデータの劣化を検出する場合の例)
 7.第7の実施の形態(メモリがデータの劣化の検出、リファレンスデータ書直しおよびリフレッシュの処理を行う場合の例)
 8.第8の実施の形態(ページ毎に複数のリファレンスセルが配置された場合の例)
 9.第9の実施の形態(ブロック毎にリファレンスセルが配置された場合の例)
 <1.第1の実施の形態>
 図1は、本技術の実施の形態における情報処理装置の構成例を示す図である。同図の情報処理装置は、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とを備える。なお、メモリコントローラ200およびメモリ300は、記憶装置を構成する。
 ホストコンピュータ100は、情報処理システムにおける各種の処理を行うものである。このホストコンピュータ100は、メモリコントローラ200を介して、メモリ300に対して書込みまたは読出し等のコマンドを発行してアクセスを行う。信号線109は、ホストコンピュータ100とメモリコントローラ200とを電気的に接続する信号線である。
 また、ホストコンピュータ100は、プロセッサ110と、メモリコントローラインターフェース120とを備える。プロセッサ110は、ホストコンピュータ100の全体を制御するものである。このプロセッサ110は、図示しないROM(Read Only Memory)に記憶されたプログラムに基づいて動作し、書込みコマンドの生成等の処理を行う。
 メモリコントローラインターフェース120は、メモリコントローラ200とのやり取りを行うインターフェースである。生成された書込みコマンド等は、メモリコントローラインターフェース120を介してメモリコントローラ200に発行される。
 メモリコントローラ200は、メモリ300を制御するものである。このメモリコントローラ200は、ホストコンピュータ100から発行された書込みおよび読出しコマンドを解釈し、これに基づく書込みおよび読出しリクエストをメモリ300に対して要求する。信号線209は、メモリコントローラ200とメモリ300とを電気的に接続する信号線である。
 メモリ300は、データを記憶するものである。このメモリ300は、内部に記憶領域を有しており、メモリコントローラ200から要求されたリクエストに基づいて、この記憶領域に対するアクセスを行う。この際、メモリ300とメモリコントローラ200との間でデータの転送が行われる。このメモリ300には不揮発メモリを想定する。なお、メモリ300は、請求の範囲に記載の不揮発メモリの一例である。
 ホストコンピュータ100は、読出しを行う際に、読出しコマンドとこれに付随する読出し先アドレスおよび読出しデータ数をメモリコントローラ200に対して発行する。メモリコントローラ200がこのコマンドを解釈して、これに付随する読出し先アドレスおよび読出しデータ数に基づいてメモリ300に対して読出しリクエストを要求する。メモリ300は、このリクエストに基づいて読出しを行い、読み出したデータをメモリコントローラ200に対して出力する。また、メモリ300は、読出し処理の結果をレスポンスとしてメモリコントローラ200に出力する。その後、メモリコントローラ200は、読出し処理の結果をホストコンピュータ100に通知する。また、メモリコントローラ200は、メモリ300から出力されたデータを読出しデータとしてホストコンピュータ100に出力する。
 一方、書込みの際には、ホストコンピュータ100は、書込みコマンドとこれに付随する書込みデータ、書込み先アドレスおよび書込みデータ数をメモリコントローラ200に対して発行する。メモリコントローラ200は、発行された書込みコマンドを解釈し、これに付随する書込みデータ、書込み先アドレスおよび書込みデータ数に基づいてメモリ300に対して書込みリクエストを要求する。メモリ300は、このリクエストに基づいて書込みを行い、書込み処理の結果をレスポンスとしてメモリコントローラ200に出力する。最後に、メモリコントローラ200は、書込み処理の結果をホストコンピュータ100に対して通知する。
 [メモリコントローラの構成]
 図2は、本技術の第1の実施の形態におけるメモリコントローラ200の構成例を示す図である。このメモリコントローラ200は、プロセッサ210と、ECC処理部240と、アドレス変換部250と、代替処理部260と、バッファ280と、ホストインターフェース230と、メモリインターフェース270とを備える。
 プロセッサ210は、メモリコントローラ200の全体を制御するものである。このプロセッサ210は、ホストコンピュータ100が発行したコマンドの解釈、メモリ300に要求するリクエストの生成等の処理を行う。プロセッサ210が生成するリクエストには、前述の書込みリクエストおよび読出しリクエストのほかにリファレンスデータ書直しリクエスト、リフレッシュリクエストおよび代替書込みリクエストが存在する。これらのリクエストについては、後述する。なお、プロセッサ210は、ROM(不図示)に記憶されたファームウェアに基づいて処理を行う。
 ホストインターフェース230は、ホストコンピュータ100とのやり取りを行うインターフェースである。ホストコンピュータ100が発行した読出しコマンド等は、ホストインターフェース230を介してメモリコントローラ200に入力される。また、読出しコマンドに基づく読出しデータ等は、ホストインターフェース230を介してホストコンピュータ100に出力される。
 メモリインターフェース270は、メモリ300とのやり取りを行うインターフェースである。メモリコントローラ200において生成されたリクエスト等は、メモリインターフェース270を介してメモリ300に出力される。また、メモリ300が出力した読出しデータ等は、メモリインターフェース270を介してメモリコントローラ200に入力される。
 ECC処理部240は、ホストコンピュータ100から発行された書込みコマンドに付随する書込みデータのECC符号化およびメモリ300から出力された読出しデータのECC復号を行うものである。ここで、ECC符号化とは、書込みデータにパリティを付加してECC符号にする処理である。このパリティには、例えば、BCH(Bose Chaudhuri Hocquenghem)符号を使って生成されたパリティを使用することができる。また、ECC復号とは、ECC符号から元のデータを取り出す処理である。この復号の際、データの誤り検出および誤り訂正が行われる。
 アドレス変換部250は、ホストコンピュータ100により発行されたコマンドに含まれるアドレスである論理アドレスをメモリ300におけるアドレスである物理アドレスに変換するものである。このアドレス変換部250は、論理アドレスと物理アドレスとの対応を示すアドレス変換テーブルを有しており、このアドレス変換テーブルに基づいて上述の変換を行う。後述するようにメモリ300は、ページを単位としてページアドレスによりアクセスされる。このため、アドレス変換部250は、論理アドレスをページアドレスからなる物理アドレスに変換する。
 代替処理部260は、代替処理を行うものである。ここで、代替処理とは、書込みが可能でないページを未使用のページと置き換える処理である。この代替処理部260は、アドレス変換部250に保持されたアドレス変換テーブルを変更することより、代替を行う。なお、未使用のページが存在しない場合には、代替処理が不可能となる。
 バッファ280は、ホストコンピュータから発行された書込みコマンドに付随する書込みデータおよびメモリ300から出力された読出しデータを一時的に保持するバッファである。また、バス201は、メモリコントローラ200内の各部を相互に接続するバスである。
 [メモリの構成]
 図3は、本技術の第1の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、書込制御部310と、読出制御部340と、劣化検出部320と、メモリコントローラインターフェース330と、ページバッファ380と、メモリセルアレイ350とを備える。
 メモリセルアレイ350は、メモリセルが2次元アレイ状に配置されて構成されたものである。このメモリセルには、データを記憶するメモリセルであるデータセルとリファレンスデータを記憶するメモリセルであるリファレンスセルとが含まれる。ここで、リファレンスデータとは、データセルに記憶されたデータの劣化を検出するためにリファレンスセルに記憶される所定の値である。データセルにおけるデータの記憶状態は、書込みが行われた当初の状態から時間の経過とともに変化する。この変化が進行すると、記憶されたデータの維持が困難になる。このような、データの記憶状態の変化をデータの劣化と称する。リファレンスセルは、このデータの劣化を検出するためにリファレンスデータを出力する。本技術の実施の形態では、上述した所定の値とリファレンスセルから読み出した値とが異なる場合にデータセルに記憶されたデータの劣化が検出される。なお、データの劣化は、後述する劣化検出部320により検出される。
 これらデータセルおよびリファレンスセルは、同一のチップに形成されることを想定する。リファレンスセルによりデータセルに記憶されたデータの劣化を検出するため、両者の特性を揃える必要があるためである。
 データセルは、ページサイズにより分割されたページを単位としてページアドレスによりアクセスされる。このページは、例えば、4223ビットの大きさである。また、リファレンスセルはページ毎に配置することができる。リファレンスデータの書込みはデータの書込みと略同時に行われる。これらの書込み時期が大きく異なった場合、リファレンスデータによるデータの劣化の検出精度が低下するためである。なお、メモリセルアレイ350は、不揮発メモリであるReRAMにより構成されることを想定する。メモリセルアレイ350の構成の詳細については、後述する。
 劣化検出部320は、メモリセルアレイ350のデータセルに記憶されたデータの劣化を検出するものである。この劣化検出部320は、上述したリファレンスデータの所定の値を保持し、リファレンスセルから読み出された値とこの保持した値とを比較して、両者が不一致の場合にデータの劣化を検出する。この際、劣化検出部320は、データの劣化をメモリコントローラ200に通知する。データの劣化の詳細については、後述する。
 書込制御部310は、メモリセルアレイ350に対するデータ等の書込みを制御するものである。この書込制御部310は、メモリコントローラ200が要求した書込みリクエストを解釈し、ページを単位としてデータの書込みを行う。その後、書込みの結果をメモリコントローラ200に対して出力する。また、書込制御部310は、メモリセルアレイ350のリフレッシュの制御ならびにリファレンスデータの書込みおよび書直しの制御をさらに行う。ここで、リフレッシュとは、データセルに記憶された値を反転させた後にデータを書き込む処理である。リフレッシュおよびリファレンスデータの書直しは、劣化検出部320においてデータの劣化が検出された際に略同時に行われる。データの劣化の検出精度の低下を防ぐためである。書込制御部310における書込み、リフレッシュおよびリファレンスデータの書直しの詳細については、後述する。
 読出制御部340は、メモリセルアレイ350に対するデータの読出しを制御するものである。この読出制御部340は、メモリコントローラ200が要求した読出しリクエストを解釈し、ページを単位としてデータの読出しを行う。その後、読み出したデータをメモリコントローラ200に出力する。読出制御部340における読出しの詳細については、後述する。
 ページバッファ380は、メモリセルアレイ350の書込みデータおよび読出しデータを一時的に保持するバッファである。このページバッファ380は、ページを単位としてデータを保持する。
 メモリコントローラインターフェース330は、メモリコントローラ200とのやり取りを行うインターフェースである。メモリコントローラ200が要求したリクエストは、メモリコントローラインターフェース330を介してメモリ300に入力される。また、読出しリクエストに基づく読出しデータ等は、メモリコントローラインターフェース330を介してメモリコントローラ200に出力される。また、バス301は、メモリ300内の各部を相互に接続するバスである。なお、書込制御部310は、請求の範囲に記載の書込み制御部の一例である。読出制御部340は、請求の範囲に記載の読出し制御部の一例である。
 [メモリセルの構成]
 図4は、本技術の実施の形態におけるメモリセルの構成例を示す図である。同図は、図3において説明したメモリセルアレイ350におけるメモリセルの構成を表したものである。同図に表したように、記憶素子351およびMOS(Metal Oxide Semiconductor)トランジスタ352により1ビットのメモリセル353が構成される。記憶素子351は、データ等を記憶する素子である。MOSトランジスタ352は、記憶素子351を駆動するトランジスタである。
 記憶素子351の一端は共通の信号線であるプレート線に接続され、他端はMOSトランジスタ352のドレインに接続されている。MOSトランジスタ352のゲートは複数のワード線のうちの1本に接続され、ソースは複数のビット線のうちの1本に接続されている。ワード線およびビット線は、メモリセル353を構成するMOSトランジスタ352に対してXYマトリクス状に配線されている。これにより、ワード線およびビット線からそれぞれ1本を選択して信号を入力することにより、1個のメモリセル353が選択されてデータ等の書込みまたは読出しが行われる。例えば、同図において左端に記載されたメモリセル353を選択する場合には、ワード線#0およびビット線#0を選択する。
 記憶素子351は、印加された電圧の極性により抵抗値が変化する。例えば、記憶素子351のプレート線に接続された端子を基準として、記憶素子351の他の端子に正の極性となる電圧(書込み電圧)を印加することにより記憶素子351を高抵抗の状態にすることができる。この高抵抗の状態の記憶素子351に逆極性の書込み電圧を印加することにより、記憶素子351を低抵抗の状態にすることができる。なお、以後の説明では、高抵抗の状態をHRS(High Resistance State)、低抵抗の状態をLRS(Low Resistance State)と称する。
 これらHRSおよびLRSを論理値に対応させて、データ等の記憶が行われる。例えば、記憶素子351がHRSの場合を値「1」、記憶素子351がLRSの場合を値「0」とすることができる。また、記憶素子351がHRSの場合を値「0」、記憶素子351がLRSの場合を値「1」に対応させることも可能である。本技術の実施の形態では、HRSの場合を値「0」、LRSの場合を値「1」に対応させる場合を想定する。このように記憶素子351の抵抗値を可逆的に変化させて、メモリセル353にデータ等を書き込むことができる。
 ここで、メモリセルをHRSからLRSに遷移させる処理をセット処理と称し、LRSからHRSに遷移させる処理をリセット処理と称する。これらのセット処理およびリセット処理は、複数のメモリセル353に対して同時に行われる。セット処理を行う際には、複数のワード線のうちの1本を選択する。例えばワード線#0を選択し、オン電圧を印加する。これにより、ワード線#0に接続されたMOSトランジスタ352がオン状態になる。次に、セット処理を行うメモリセル353に接続されたビット線を選択し、プレート線に対して負の極性となる書込み電圧を印加する。すると、選択されたビット線に接続されたメモリセル353の記憶素子351は、LRSになり、値「1」が書き込まれる。リセット処理を行う際には、セット処理と同様にワード線#0を選択してオン電圧を印加する。次に、リセット処理を行うメモリセル353に接続されたビット線を選択し、プレート線に対して正の極性となる書込み電圧を印加する。すると、選択されたビット線に接続されたメモリセル353の記憶素子351は、HRSになり、値「0」が書き込まれる。
 このようにして、1本のワード線に接続された複数のメモリセルに対して書込みを行うことができる。この1度の書込み操作により書込み可能なメモリセル353の数が前述したページサイズに該当する。同図の例では、ページサイズとしてはmビットを想定する。このような操作により、メモリセルアレイ350からのページを単位とするデータの書込みが行われる。
 [記憶素子の特性と読出し操作]
 図5は、本技術の実施の形態における記憶素子351の特性を示す図である。同図は、記憶素子351の抵抗値の分布を表したものである。同図のグラフ401はLRSの場合の特性を表し、グラフ402はHRSの場合の特性を表している。また、同図の破線は、HRSとLRSとを分離する閾値403を表している。メモリセル353からデータを読み出す際、この閾値403に相当する抵抗値によりHRSおよびLRSが判別される。具体的には、書込み電圧より低い電圧の読出し電圧を記憶素子351に印加して流れる電流値を取得する。この電流値に応じた抵抗値が閾値403に相当する抵抗より高い場合にはHRSと判断され、逆の場合にはLRSと判断される。このような読出しはページを単位として行われる。読出制御部340は、図4において説明したページを構成するメモリセル353に対して読出し電圧を同時に印加する。例えば、リセット処理と同じ極性の読出し電圧を記憶素子351に印加することができる。同時に、各ビット線を流れる電流が閾値403に基づいて判別される。このような操作により、メモリセルアレイ350からのページを単位とする読出しが行われる。
 [書込み操作]
 図6は、本技術の実施の形態におけるデータの書込みを示す図である。同図はページを単位とするデータセルへの書込み操作を表したものである。便宜上、ページサイズは8ビットを想定する。同図に表したように、データの書込みは、書込みデータの転送、データセルからのデータの読出しおよびデータの書込みの順に実行される。また、図4において説明したように、データの書込みはセット処理およびリセット処理により行われる。これらの処理は、対象となるビットの位置を特定するためのマスクデータを用いて行われる。
 ReRAMのような不揮発メモリでは、データの書換えを行うたびに記憶素子351が徐々に劣化することが知られている。劣化が進んだ記憶素子351では正常な書込みおよび読出しができなくなる。この記憶素子351の劣化を防止するため、不要なセット処理およびリセット処理を削減する。これは、マスクデータを使用して、対象となるビットを限定することより行うことができる。同図に表したマスクデータでは、値「0」のビットにより対象となるビットの位置が特定され、当該ビットに対してセット処理およびリセット処理が行われる。
 書込みデータがメモリ300のページバッファ380に転送された後、書込み対象のページのデータセルに対して読出し(プレリード)を行う。この時読み出されたデータをプレリードデータと称する。このプレリードデータおよび転送された書込みデータからリセット処理用マスクデータおよびセット処理用マスクデータが生成される。リセット処理用マスクデータは、下記の式に基づいて生成することができる。
  RMask=~R|W
ただし、RMaskは、リセット処理用マスクデータを表す。Rは、プレリードデータを表す。Wは、書込みデータを表す。また、|および~は、それぞれビット毎の論理和演算およびビット毎の否定演算を表す演算子である。また、セット処理用マスクデータは、下記の式に基づいて生成することができる。
  SMask=R|~W
ただし、SMaskは、セット処理用マスクデータを表す。
 次に、生成したマスクデータによるリセット処理およびセット処理を順に行う。これらの操作により、データの書込みが行われる。
 その後、書込みが正しく行われた否かについて検証が行われる。これは、書込みが行われたページに対して読出しを行い、読み出したデータと書込みデータとが一致するか否かにより判断することができる。この検証の際の書込みデータには、ページバッファ380に保持されている書込みデータを使用することができる。読み出したデータと書込みデータとが一致する場合には、書込みが成功したものと判断され、書込み処理は終了する。しかし、両者が不一致の場合には、書込みが失敗したものと判断される。この場合、メモリ300は、書込みが失敗した旨をレスポンスとしてメモリコントローラ200に出力する。なお、書込みが失敗した場合の処理として、再度のメモリセルアレイ350への書込みを行うこともできる。
 [記憶データの劣化]
 前述のように、ReRAM等の不揮発メモリには、データの記憶状態が時間の経過とともに徐々に変化する、いわゆるデータの劣化現象が存在する。このデータの劣化が進行すると、当初記憶させたデータとは異なるデータが読み出されるようになり、記憶されたデータが破壊される。ReRAMを例に挙げて説明すると、セット処理によりLRSとなった記憶素子351の抵抗値が時間の経過とともに上昇し、図5において説明した閾値403を超えてHRSの状態に変化する現象が存在する。図2において説明したように、メモリコントローラ200にはECC処理部240が配置されており、読み出したデータの誤り訂正が行われる。しかし、データの劣化に基づくデータの破壊が多くのビットにおいて発生した場合には、この誤り訂正が不可能となる。
 上述した記憶素子351の抵抗値の変化は、書込みからの経過時間に略比例する。そこで、データの破壊に至る前に、記憶されたデータを書直すリフレッシュを行う。このリフレッシュを行うことにより、記憶素子351の抵抗値を正規の値に戻すことができ、記憶データの破壊を防ぐことができる。しかし、図6において説明したように、データの書込みはページ単位で行われ、マスクデータにより対象となるビットのメモリセルにのみ書込みが行われる。このため、ページに対する書込みが行われた場合において、書込み対象のメモリセルと書込み対象ではないメモリセルとでは、記憶素子351の抵抗値の変化の度合いが異なることとなる。すなわち、ページを構成するメモリセル毎に記憶素子351の抵抗値の変化の度合いが異なる。このため、リフレッシュを実行するタイミングが問題となる。
 そこで、前述したリファレンスセルをページ毎に配置してリファレンスデータを記憶させる。このリファレンスデータにより対応するページのデータの劣化を検出し、リフレッシュを行う。具体的には、ページにおいて最初に書込みを行った際に、対応するリファレンスセルに所定の値、例えば、値「1」をリファレンスデータとして書き込む。その後、ページにおいて読出しが行われる際に、リファレンスセルからの読出しを行う。後述するように、データセルおよびリファレンスセルは、ページアドレス毎にそれぞれ割り当てられており、ページに対する読出しが行われた際、データおよびリファレンスデータが同時に読み出される。この時リファレンスセルから読み出した値が書き込んだ所定の値と異なる場合、すなわち、値「0」が読み出された場合に、データの劣化が進行していると判断し、リフレッシュを行う。
 一方、リファレンスセルにおいても、リファレンスデータの再度の書込みを行う。劣化したリファレンスデータを書直すためである。これらリフレッシュおよびリファレンスデータの書直しを略同時に行うことにより、データの劣化の検出精度を向上させることができる。前述のように、リファレンスデータとしてリファレンスセルに書き込む所定の値は、メモリ300における既定値として劣化検出部320等に保持させることができる。
 なお、メモリセルへの書込みは、マスクデータを使用して行われるため、ページに記憶されたデータによる再度の書込みを行ってもページを構成するメモリセルに対する書込みは実行されない。そこで、ページに記憶された値を反転させた後に、ページに記憶されていたデータを書き込むことにより、リフレッシュを行う。これにより、ページを構成する全てのメモリセルにおいて書直しを行うことができる。リファレンスデータの書直しにおいても上述した所定の値とは異なる値の書込みを行った後に所定の値の書込みを行う。上述の例に即して説明すると、値「0」の書込みを行った後に値「1」の書込みを行う。データセルと同じ条件の書込みを行うためである。
 データセルおよびリファレンスセルは、ページアドレス毎にそれぞれ割り当てられているため、ページに対する書込みが行われた際のリファレンスセルへの書込みを防ぐ必要がある。上述したリファレンスデータの書直し以外の不要な書込みを防止するためである。これは、マスクデータを使用することにより行うことができる。図6のリセット処理用マスクデータおよびセット処理用マスクデータのうちリファレンスセルに該当するビットを常に値「1」にする。例えば、同図の8ビットのマスクデータのうち右端のビットがリファレンスセルに該当するビットの場合、セット処理用マスクデータを「11111011」に変更する。なお、同図のリセット処理用マスクデータは、右端のビットが値「1」であるため、変更の必要はない。一方、リファレンスデータの書直しの際には、リファレンスセルに該当するビット以外のビットを値「1」としたマスクデータを使用してセット処理およびリセット処理を行う。これにより、ページにおけるリファレンスセルにのみ書込みを行うことができる。
 リファレンスデータとしてリファレンスセルに記憶させる所定の値には、早くデータが劣化する値を採用すると好適である。データセルにおいてデータの劣化によるデータの破壊が発生する前に、リファレンスセルによるデータの劣化の検出を行うことができ、データの劣化の検出精度を向上させることができるためである。図5において説明したように、読出しの際に記憶素子351に対してリセット処理と同じ極性の読出し電圧が印加される場合には、読出しを行うたびにリセット処理と同様の効果を生じる。このため、LRSからHRSへの変化が生じ易いと考えることができる。このような場合には、LRSに対応する値「1」の方がHRSに対応する値「0」より早く劣化すると考えられるため、この値「1」をリファレンスデータの所定の値として採用することができる。
 [メモリセルアレイの構成]
 図7は、本技術の第1の実施の形態におけるメモリセルアレイ350の構成例を示す図である。同図のメモリセルアレイ350は、データセル354と、リファレンスセル355とを備える。また、同図に表した例では、メモリセルアレイ350には、4223ビットのデータセル354と1ビットのリファレンスセル355とがページ毎に配置されている。同図において、「RD」はリファレンスデータを表している。また、データセルには4096ビットのデータおよび127ビットの冗長が記憶される。この冗長にはパリティの他にデータの管理情報、例えば、データのアドレス変換情報を記憶させることができる。
 [読出し処理(メモリコントローラの処理)]
 図8は、本技術の第1の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。同図の処理は、ホストコンピュータ100からの読出しコマンドがホストインターフェース230を介して入力されることにより開始される。まず、プロセッサ210が読出しコマンドを解釈し、これに基づく読出しリクエストを生成してメモリ300に対して要求する(ステップS901)。次に、メモリコントローラ200は、メモリ300から読出しデータが出力されるまで待機し(ステップS902)、出力された読出しデータを取得すると(ステップS902:Yes)ステップS903の処理に移行する。ステップS903において、ECC処理部240は、出力された読出しデータに対してECC復号を行う(ステップS903)。この際、読出しデータの誤りが検出された場合には、ECC処理部240が誤り訂正をさらに行う。この誤り訂正に失敗した場合にはECCエラーとなり(ステップS904:Yes)、プロセッサ210は、読出しコマンドの処理が異常終了した旨をホストコンピュータ100に通知する(ステップS908)。その後、読出し処理を終了する。
 一方、読出しデータに誤りが検出されなかった場合または誤り訂正に成功した場合は(ステップS904:No)、プロセッサ210は、ステップS905の処理に移行する。ステップS905において、プロセッサ210は、読出しデータをホストコンピュータ100に対して出力するとともに、読出しコマンドの処理が正常終了した旨をホストコンピュータ100に通知する(ステップS905)。次に、メモリ300からデータの劣化が通知された場合には(ステップS909:Yes)、プロセッサ210は、リファレンスデータ書直しおよびリフレッシュを行い(ステップS910)、読出し処理を終了する。一方、メモリ300からデータの劣化が通知されなかった場合には(ステップS909:No)、プロセッサ210は、ステップS910の処理をスキップして読出し処理を終了する。
 なお、メモリコントローラ200は、メモリ300からデータ劣化の通知があった場合において、ステップS910の処理を任意のタイミングで行うことができる。例えば、メモリ300へのリクエストの要求が連続する場合には、連続するこれらの処理の終了後にステップS910の処理を行うことができる。このような場合、メモリコントローラ200は、データの劣化が検出されたページアドレスを保持する必要がある。
 [リファレンスデータ書直しおよびリフレッシュ処理(メモリコントローラの処理)]
 図9は、本技術の第1の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS910)の処理手順(メモリコントローラ)の一例を示す図である。同図の処理手順は、図8におけるステップS910に相当する処理手順である。まず、プロセッサ210は、リファレンスデータ書直しリクエストをメモリ300に対して要求する(ステップS911)。このリクエストは、データの劣化の検出に係るリファレンスセルに対して、リファレンスデータの書直しを要求するリクエストである。次に、プロセッサ210は、リフレッシュリクエストをメモリ300に対して要求する(ステップS912)。このリクエストは、データの劣化が検出されたページのデータセルに対してリフレッシュを要求するリクエストである。その後、プロセッサ210は、リファレンスデータ書直しおよびリフレッシュ処理を終了する。
 [書込み処理(メモリコントローラの処理)]
 図10は、本技術の第1の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。同図の処理は、ホストコンピュータ100からの書込みコマンドがホストインターフェース230を介して入力されることにより開始される。まず、プロセッサ210が書込みコマンドを解釈し、これに基づく書込みリクエストを生成してメモリ300に要求する(ステップS921)。次に、メモリコントローラ200は、メモリ300からのレスポンスを受信するまで待機し(ステップS922)、レスポンスの受信後(ステップS922:Yes)、ステップS924の処理に移行する。ステップS924において、レスポンスが書込みエラーを示すものである場合には(ステップS924:Yes)、代替処理部260により代替処理が可能か否について判断される(ステップS926)。
 その結果、代替処理が可能である場合には(ステップS926:Yes)、代替処理部260による代替処理が行われ、代替されたページアドレスに基づく代替書込みリクエストが要求される(ステップS927)。このリクエストは、メモリ300に対して代替されたページアドレスに基づく再度の書込みを要求するリクエストである。その後、プロセッサ210は、ステップS922からの処理に移行する。一方、ステップS926において、代替処理が可能でない場合には(ステップS926:No)、プロセッサ210は、書込みコマンドが異常終了した旨をホストコンピュータ100に対して通知し(ステップS928)、書込み処理を終了する。
 一方、ステップS924において、レスポンスが書込みエラーを示すものでない場合には(ステップS924:No)、プロセッサ210は、書込みコマンドが正常終了した旨をホストコンピュータ100に通知する(ステップS925)。次に、メモリ300からデータの劣化が通知された場合には(ステップS929:Yes)、プロセッサ210は、図9において説明したリファレンスデータ書直しおよびリフレッシュ処理(ステップS910)を行い、書込み処理を終了する。一方、メモリ300からデータの劣化が通知されていない場合には(ステップS929:No)、プロセッサ210は、ステップS910の処理をスキップして書込み処理を終了する。
 なお、メモリコントローラ200は、読出し処理の場合と同様に、メモリ300からデータ劣化の通知があった場合において、ステップS910の処理を任意のタイミングで行うことができる。
 [読出し処理(メモリの処理)]
 図11は、本技術の第1の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。同図の処理は、メモリコントローラ200からの読出しリクエストがメモリコントローラインターフェース330を介して入力されることにより開始される。まず、読出制御部340がデータの読出しを行う(ステップS931)。この際、読出制御部340は、読出しリクエストに基づくページアドレスのデータをメモリセルアレイ350から読み出してページバッファ380に保持させる。なお、この際、リファレンスセルからのリファレンスデータの読出しも行われる。すなわち、リファレンスセルからリファレンスデータが出力される。次に、読出制御部340は、読み出したデータをメモリコントローラ200に対して出力する(ステップS932)。このデータは、メモリコントローラインターフェース330を介して出力される。
 次に、劣化検出部320により、データが劣化しているか否かが判断される(ステップS933)。これは、読出し対象のページに対応するリファレンスセルからリファレンスデータとして書き込んだ所定の値とは異なる値が読み出されたか否かにより判断される。その結果、データが劣化していた場合には(ステップS933:Yes)、読出制御部340は、データの劣化をレスポンスとしてメモリコントローラ200に通知し(ステップS934)。読出し処理を終了する。一方、データが劣化していない場合には(ステップS933:No)、読出制御部340は、ステップS934の処理をスキップして読出し処理を終了する。
 [書込み処理(メモリの処理)]
 図12は、本技術の第1の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。同図の処理は、メモリコントローラ200からの書込みリクエストがメモリコントローラインターフェース330を介して入力されることにより開始される。まず、書込制御部310は、書込みリクエストに付随する書込みデータをページバッファ380に転送する(ステップS941)。次に、書込制御部310は、図6において説明したプレリードを行う(ステップS942)。これにより、書込みリクエストに基づくページアドレスのデータがメモリセルアレイ350から読み出される。このプレリードの際、リファレンスセルからリファレンスデータが出力される。劣化検出部320により、データの劣化が検出された場合には(ステップS943:Yes)、書込制御部310は、データの劣化をレスポンスとしてメモリコントローラ200に通知する(ステップS944)。その後、書込制御部310は、ステップS945の処理に移行する。
 一方、データの劣化が検出されなかった場合には(ステップS943:No)、書込制御部310は、ステップS944の処理をスキップしてステップS945の処理に移行する。ステップS945において、書込制御部310は、データの書込みを行う(ステップS945)。これは、図6において説明したマスクデータの生成、リセット処理およびセット処理により構成させる処理である。
 次に、書込制御部310は、検証を行う(ステップS947)。これは、前述のように、書込み対象のデータセルから読出しを行い、読み出したデータと書込みデータとが一致するか否かを判断することにより行われる。書込制御部310は、この検証の結果をレスポンスとしてメモリコントローラ200に通知し(ステップS948)、書込み処理を終了する。
 [リファレンスデータ書直し処理(メモリの処理)]
 図13は、本技術の第1の実施の形態におけるリファレンスデータ書直し処理の処理手順(メモリ)の一例を示す図である。同図の処理は、メモリコントローラ200からのリファレンスデータ書直しリクエストがメモリコントローラインターフェース330を介して入力されることにより開始される。まず、書込制御部310がリファレンスデータの反転値をリファレンスセルに書き込む(ステップS952)。この際、書込制御部310は、読出しリクエストまたは書込みリクエストの対象となったページアドレスのリファレンスセルに対して書込みを行う。次に、書込制御部310がリファレンスデータをリファレンスセルに書き込む(ステップS953)。その後、書込制御部310は、リファレンスデータ書直し処理を終了する。
 [リフレッシュ処理(メモリの処理)]
 図14は、本技術の第1の実施の形態におけるリフレッシュ処理の処理手順(メモリ)の一例を示す図である。同図の処理は、メモリコントローラ200からのリフレッシュリクエストがメモリコントローラインターフェース330を介して入力されることにより開始される。まず、書込制御部310が、リフレッシュ処理の対象となるページからデータの読出しを行う(ステップS961)。この際読み出されたデータは、ページバッファ380に保持される。次に、書込制御部310は、ページを構成するデータセルの全ビットに対して値「1」を書き込む(ステップS964)。次に、書込制御部310は、ページを構成するデータセルの全ビットに対して値「0」を書き込む(ステップS965)。これらにより、データセルの値の反転が行われる。最後に、書込制御部310は、ステップS961において読出したデータ(ページバッファ380に保持させたデータ)の書込みを行い(ステップS969)、リフレッシュ処理を終了する。
 このように、本技術の第1の実施の形態では、ページ毎にリファレンスセルを配置し、このリファレンスセルに記憶させたリファレンスデータに基づいてデータセルにおけるデータの劣化を検出し、リフレッシュを行う。これにより、リフレッシュを行うタイミングを簡便な処理により取得することができる。
 <2.第2の実施の形態>
 上述の実施の形態では、リフレッシュの際、値「1」および値「0」の2度の書込みを行うことにより、データセルの値の反転を行っていた。これに対し本技術の第2の実施の形態では、1度の書込みによりデータセルの値の反転を行う。これにより、リフレッシュ処理を簡略化することができる。
 [リフレッシュ処理(メモリの処理)]
 図15は、本技術の第2の実施の形態におけるリフレッシュ処理の処理手順(メモリ)の一例を示す図である。まず、書込制御部310が、リフレッシュ処理の対象となるページからのデータの読出しを行う(ステップS971)。次に、書込制御部310は、読み出したデータの全ビットを反転したデータの書込みを行う(ステップS976)。最後に、書込制御部310は、読み出したデータの書込みを行い(ステップS979)、リフレッシュ処理を終了する。
 これ以外のメモリ300における処理は図11乃至13において説明した処理と同様であるため、説明を省略する。また、これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第2の実施の形態によれば、1度の書込み(ステップS976)によりデータセルの値の反転を行うことができる。これにより、リフレッシュ処理の簡略化が可能となる。
 <3.第3の実施の形態>
 上述の第1の実施の形態では、メモリ300に対してリファレンスデータ書直しおよびリフレッシュの処理がそれぞれ異なるリクエストにより要求されていた。これに対し、本技術の第3の実施の形態では、単一のリクエストによりこれらの処理を行う。これにより、メモリコントローラ200の処理を簡略化する。
 [メモリコントローラの処理]
 本技術の第3の実施の形態におけるメモリコントローラ200は、リファレンスデータ書直しリクエストおよびリフレッシュリクエストに代えてリファレンスデータ書直しおよびリフレッシュリクエストをメモリ300に対して要求する。具体的には、図9において説明したステップS911およびステップS912の代わりにリファレンスデータ書直しおよびリフレッシュリクエストをメモリ300に対して要求する。
 これ以外のメモリコントローラ200における処理は、図8および10において説明した処理と同様であるため説明を省略する。
 [リファレンスデータ書直しおよびリフレッシュ処理]
 図16は、本技術の第3の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理の処理手順の一例を示す図である。まず、書込制御部310がリフレッシュ処理の対象となるページからのデータの読出しを行う(ステップS981)。次に、書込制御部310は、リファレンスデータの反転値をデータセルおよびリファレンスセルに対して書き込む(ステップS982)。次に、書込制御部310は、リファレンスデータをデータセルおよびリファレンスセルに対して書き込む(ステップS983)。最後に、書込制御部310は、読み出したデータの書込みを行い(ステップS989)、リファレンスデータ書直しおよびリフレッシュ処理を終了する。
 これ以外のメモリ300における処理は図11および12において説明した処理と同様であるため、説明を省略する。また、これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第3の実施の形態によれば、1度のリクエストによりリファレンスデータ書直しおよびリフレッシュを行うことができる。これにより、メモリコントローラ200の処理の簡略化が可能となる。
 <4.第4の実施の形態>
 上述の第1の実施の形態では、データセルおよびリファレンスセルに同じ電圧の書込み電圧を印加して書込みを行っていた。これに対し、本技術の第4の実施の形態では、データセルとは異なる電圧の書込み電圧をリファレンスセルに印加する。これにより、データの劣化の検出精度を向上させる。
 [記憶素子の特性]
 図17は、本技術の第4の実施の形態における記憶素子351の特性を示す図である。同図は、本技術の第4の実施の形態におけるリファレンスセルの記憶素子351の特性を表したものである。本技術の第4の実施の形態では、リファレンスセルには、データセルとは異なる書込み電圧を印加して書込みを行う。ここで、データセルとは異なる書込み電圧を第2の書込み電圧と称する。図6において説明したように、書込みは、セット処理およびリセット処理により行われる。セット処理の際には、データセルの書込み電圧と同じ電圧の書込み電圧がリファレンスセルに印加される。一方、リセット処理の際には、データセルの書込み電圧より低い電圧の書込み電圧がリファレンスセルに印加される。ここで、低い電圧とは、絶対値が低い電圧を表す。この書込み電圧が、上述の第2の書込み電圧に該当する。リセット処理の際の書込み電圧がセット処理の際の書込み電圧より低いため、同図に表したように、HRSの時の記憶素子351の抵抗値が低下し、同図のグラフ404の位置は、図5において説明したグラフ404と比べて閾値403に近いものとなる。ここで、同図に記載された一点鎖線は、図5におけるグラフ404の位置を表したものである。
 このような場合には、閾値に近い抵抗値となるHRSの方がLRSより速く劣化する。この速く劣化する状態に対応する値をリファレンスデータの所定の値にする。例えば、HRSが値「0」に対応する場合には、値「0」をリファレンスデータの所定の値としてリファレンスセルに書き込む。データセルにおいてデータの劣化によるデータの破壊が発生する前に、リファレンスセルによるデータの劣化の検出を行うことができ、データの劣化の検出精度を向上させることができる。
 これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第4の実施の形態では、データセルにおける書込み電圧とは異なる第2の書込み電圧を印加して書込みを行うことにより、劣化を早めたリファレンスデータを使用する。これにより、データの劣化の検出精度を向上させることができる。
 [変形例]
 上述の本技術の第4の実施の形態では、リセット処理の際に、データセルとは異なる書込み電圧をリファレンスセルに印加していた。これに対し、セット処理の際にもデータセルとは異なる書込み電圧をリファレンスセルに印加してもよい。
 図4において説明したメモリセル353において、製造直後の記憶素子351は、HRSの状態にある。このメモリセル353に書込み電圧を印加し、LRSに遷移させる。この処理は、フォーミングと称される。また、この時印加される書込み電圧は、フォーミング電圧と称され、通常の書込み電圧より高い値の電圧である。このフォーミングにより記憶素子351は、図17におけるグラフ401により表されるLRSとなる。データセルおよびリファレンスセルのフォーミングにおいて同じ値のこのフォーミング電圧を使用することにより、LRSについてはデータセルおよびリファレンスセルにおいて同じ特性になる。そして、リファレンスセルのセット処理およびリセット処理の際に印加する電圧をデータセルにおける書込み電圧より絶対値が低い電圧である第2の書込み電圧にする。これにより、図17において説明したグラフ404により表されるHRSにすることができる。本技術の第4の実施の形態と同様に、データの劣化の検出精度の向上が可能になる。
 <5.第5の実施の形態>
 上述の本技術の第4の実施の形態では、リファレンスセルに印加する書込み電圧を変更していた。これに対し、本技術の第5の実施の形態では、リファレンスセルからの読出しの際の閾値を変更する。これにより、データの劣化の検出精度を向上させる。
 [記憶素子の特性]
 図18は、本技術の第5の実施の形態における記憶素子351の特性を示す図である。同図は、本技術の第5の実施の形態におけるリファレンスセルの記憶素子351の特性を表したものである。本技術の第5の実施の形態では、データセルとは異なる閾値に基づいてリファレンスセルからの読出しを行う。ここで、データセルとは異なる閾値を第2の閾値と称する。同図の閾値403は、図5において説明した閾値403と比較して、グラフ402に接近した値になっている。この閾値403が上述の第2の閾値に該当する。ここで、同図に記載された一点鎖線は、図5における閾値403の位置を表したものである。このため、HRSの方がLRSより劣化が早くなる。リファレンスデータの所定の値としてHRSに対応する値「0」を採用することにより、データの劣化の検出精度を向上させることができる。
 これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第5の実施の形態では、データセルにおける閾値とは異なる第2の閾値に基づいてリファレンスセルからの読出しを行うことにより、劣化を早めたリファレンスデータを使用する。これにより、データの劣化の検出精度を向上させることができる。
 <6.第6の実施の形態>
 上述の第1の実施の形態では、メモリ300がデータの劣化を検出していた。これに対し、本技術の第6の実施の形態では、メモリコントローラ200がデータの劣化の検出を行い、リフレッシュ等の処理を行う。これにより、メモリ300におけるデータの劣化の検出の処理を削減することができる。
 [メモリコントローラの構成]
 図19は、本技術の第6の実施の形態におけるメモリコントローラ200の構成例を示す図である。このメモリコントローラ200は、劣化検出部220をさらに備える点で、図2において説明したメモリコントローラ200とは異なる。
 劣化検出部220は、メモリ300に記憶されたデータの劣化を検出するものである。後述するように、本技術の第6の実施の形態におけるメモリコントローラ200は、メモリ300のページ毎に所定の値をリファレンスデータとしてデータに付加し、書込みを行う。読出し処理の際、読み出した値がリファレンスデータとして書き込んだ値と異なる場合に、劣化検出部220は、当該読出しの対象のページにおいてデータの劣化を検出する。
 [メモリの構成]
 図20は、本技術の第6の実施の形態におけるメモリ300の構成例を示す図である。このメモリ300は、図2において説明したメモリ300と比較して、劣化検出部320を備える必要はない。
 メモリコントローラ200は、ページを構成するデータの所定の領域をリファレンスデータの記憶領域として処理する。具体的には、メモリコントローラ200は、書込みを行う際、このリファレンスデータの記憶領域に該当するビットの位置にリファレンスデータを付加したデータを書込みデータとしてメモリ300に書き込む。その後、メモリコントローラ200は、読出しを行った際、読み出したデータからリファレンスデータを削除し、残りのデータを読出しデータとしてホストコンピュータに出力する。同時に、劣化検出部220により、データの劣化が検出される。また、リファレンスデータの書直しおよびリフレッシュの処理は、通常の書込み処理により実行される。このように、データの劣化の検出をメモリコントローラ200において行うため、本技術の第1の実施の形態における記憶装置とは異なり、書込みの際のプレリード時には、データの劣化の検出を行うことができない。しかし、本技術の第6の実施の形態では、通常の不揮発メモリをメモリ300として使用し、記憶装置を構成することができる。
 これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 [読出し処理(メモリコントローラの処理)]
 図21は、本技術の第6の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。まず、プロセッサ210が読出しコマンドを解釈し、これに基づく読出しリクエストを生成してメモリ300に要求する(ステップS801)。次に、メモリコントローラ200は、メモリ300から読出しデータが出力されるまで待機し(ステップS802)、出力された読出しデータを取得すると(ステップS802:Yes)、ステップS803の処理に移行する。ステップS803において、ECC処理部240は、出力された読出しデータに対してECC復号、誤り検出および誤り訂正を行う。この誤り訂正に失敗した場合にはECCエラーとなり(ステップS804:Yes)、プロセッサ210は、読出しコマンドの処理が異常終了した旨をホストコンピュータ100に通知する(ステップS808)。その後、読出し処理を終了する。
 一方、読出しデータに誤りが検出されなかった場合または誤り訂正に成功した場合は(ステップS804:No)、プロセッサ210は、ステップS805の処理に移行する。ステップS805において、プロセッサ210は、読出しデータをホストコンピュータ100に対して出力するとともに、読出しコマンドの処理が正常終了した旨をホストコンピュータ100に通知する(ステップS805)。次に、劣化検出部220がデータの劣化を検出した場合には(ステップS809:Yes)、プロセッサ210は、リファレンスデータ書直しおよびリフレッシュを行う(ステップS810)。その後、プロセッサ210は、読出し処理を終了する。一方、劣化検出部220がデータの劣化を検出しなかった場合には(ステップS809:No)、プロセッサ210は、ステップS810の処理をスキップして読出し処理を終了する。
 [リファレンスデータ書直しおよびリフレッシュ処理(メモリコントローラの処理)]
 図22は、本技術の第6の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS810)の処理手順(メモリコントローラ)の一例を示す図である。同図の処理手順は、図21におけるステップS810に相当する処理手順である。まず、プロセッサ210は、リファレンスデータの反転値の書込みを行う(ステップS812)。これは、全てのビットをリファレンスデータの反転値とした書込みデータを該当するページに書き込むことにより行われる。次に、プロセッサ210は、リファレンスデータの書込みを行う(ステップS813)。これは、全てのビットをリファレンスデータとした書込みデータを該当するページに書き込むことにより行われる。最後に、プロセッサ210は、メモリ300から読み出したデータにリファレンスデータを付加したデータの書込みを行い(ステップS819)、リファレンスデータ書直しおよびリフレッシュ処理を終了する。
 [書込み処理(メモリコントローラの処理)]
 図23は、本技術の第6の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。まず、プロセッサ210が書込みコマンドを解釈し、これに基づく書込みリクエストを生成してメモリ300に要求する(ステップS821)。次に、メモリコントローラ200は、メモリ300からのレスポンスを受信するまで待機する(ステップS822)。受信したレスポンスが書込みエラーを示すものである場合には(ステップS824:Yes)、代替処理部260により代替処理が可能か否について判断される(ステップS826)。代替処理が可能である場合には(ステップS826:Yes)、代替処理部260による代替処理が行われ、代替されたページアドレスに基づく代替書込みリクエストが要求される(ステップS827)。その後、プロセッサ210は、ステップS822からの処理に移行する。一方、ステップS826において、代替処理が可能でない場合には(ステップS826:No)、プロセッサ210は、書込みコマンドが異常終了した旨をホストコンピュータ100に対して通知し(ステップS828)、書込み処理を終了する。
 一方、ステップS824において、レスポンスが書込みエラー示すものでない場合には(ステップS824:No)、プロセッサ210は、書込みコマンドが正常終了した旨をホストコンピュータ100に通知する(ステップS825)。その後、プロセッサ210は、書込み処理を終了する。
 [読出し処理(メモリの処理)]
 図24は、本技術の第6の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。まず、読出制御部340がデータの読出しを行う(ステップS831)。次に、読出制御部340は、読み出したデータをメモリコントローラ200に対して出力し(ステップS832)、読出し処理を終了する。
 [書込み処理(メモリの処理)]
 図25は、本技術の第6の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。まず、書込制御部310は、書込みリクエストに付随する書込みデータをページバッファ380に転送する(ステップS841)。次に、書込制御部310は、プレリードを行う(ステップS842)。次に、書込制御部310は、データの書込みを行う(ステップS845)。次に、書込制御部310は、検証を行う(ステップS847)。最後に、書込制御部310は、この検証の結果をメモリコントローラ200に通知し(ステップS848)、書込み処理を終了する。
 このように、本技術の第6の実施の形態によれば、メモリコントローラにおいてデータの劣化の検出が行われるため、メモリ300におけるデータの劣化の検出を省略することができる。これにより、メモリ300の処理を簡略化することができる。
 [変形例]
 上述の第6の実施の形態では、本技術の第1の実施の形態とは異なり、メモリ300におけるデータの書込み(リセットおよびセット等の処理)がデータセルおよびリファレンスセルを区別することなく行われる。このため、プレリードの際、劣化により所定の値とは異なる値がリファレンスデータとして読み出された場合、リファレンスデータの書込みが発生する。すなわち、意図しないリファレンスデータの書直しがメモリ300により実行される。このため、メモリコントローラ200によるデータの劣化の検出が正確に行われない場合がある。
 そこで、本技術の第1の実施の形態におけるメモリ300のように、データの書込みの際には、マスクデータによりリファレンスセルへの書込みを防止する方式を使用することができる。具体的には、図25において説明した書込み処理のうち、データの書込み(ステップS845)において、マスクデータによりリファレンスデータを記憶する領域(ビット)への書込みを防止する処理を採用する。さらに、リファレンスデータ書直しおよびリフレッシュ処理をメモリコントローラ200が要求するリクエストに基づいて実行する方式とする。具体的には、図22において説明したステップS810の処理の代わりに図9において説明したステップS910の処理をメモリコントローラ200が実行する。メモリ300は、本技術の第1の実施の形態と同様に、リファレンスデータの書直しを要求するリクエストとリフレッシュを要求するリクエストを実行できるように構成する。これにより、上述したデータの書込みの際のリファレンスデータの書直しを防止することができ、メモリコントローラ200によるデータの劣化の検出精度を向上させることができる。
 <7.第7の実施の形態>
 上述の第1の実施の形態では、メモリコントローラ200がメモリ300にリクエストを要求してリフレッシュ等の処理を行っていた。これに対し、本技術の第7の実施の形態では、メモリ300が独立してリフレッシュ等の処理を行う。これにより、メモリコントローラ200におけるリフレッシュ等の処理を削減することができる。
 なお、本技術の第7の実施の形態におけるメモリコントローラ200には、図2において説明したメモリコントローラ200を使用することができる。また、メモリ300には、図3において説明したメモリ300を使用することができる。
 [読出し処理(メモリコントローラの処理)]
 図26は、本技術の第7の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。まず、プロセッサ210が読出しコマンドを解釈し、これに基づく読出しリクエストを生成してメモリ300に要求する(ステップS701)。次に、メモリコントローラ200は、メモリ300から読出しデータが出力されるまで待機し(ステップS702)、出力された読出しデータを取得すると(ステップS702:Yes)、ステップS703の処理に移行する。ステップS703において、ECC処理部240は、出力された読出しデータに対してECC復号、誤り検出および誤り訂正を行う(ステップS703)。この誤り訂正に失敗した場合にはECCエラーとなり(ステップS704:Yes)、プロセッサ210は、読出しコマンドの処理が異常終了した旨をホストコンピュータ100に通知し(ステップS708)、読出し処理を終了する。
 一方、読出しデータに誤りが検出されなかった場合または誤り訂正に成功した場合は(ステップS704:No)、プロセッサ210は、ステップS705の処理に移行する。ステップS705において、プロセッサ210は、読出しデータをホストコンピュータ100に対して出力するとともに、読出しコマンドの処理が正常終了した旨をホストコンピュータ100に通知し(ステップS705)、読出し処理を終了する。
 なお、メモリコントローラ200における書込み処理の処理手順は、図23において説明した書込み処理の処理手順と同様であるため、説明を省略する。
 [読出し処理(メモリの処理)]
 図27は、本技術の第7の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。まず、読出制御部340がデータの読出しを行う(ステップS731)。次に、読出制御部340は、読み出したデータをメモリコントローラ200に対して出力する(ステップS732)。次に、劣化検出部320により、データが劣化しているか否かが判断される(ステップS733)。その結果、データが劣化していた場合には(ステップS733:Yes)、読出制御部340は、リファレンスデータ書直しおよびリフレッシュ処理を行う(ステップS750)。次に、読出制御部340は、読み出したデータをデータセルに書き込む(ステップS739)。その後、読出制御部340は、読出し処理を終了する。一方、データが劣化していない場合には(ステップS733:No)、読出制御部340は、ステップS750およびS739の処理をスキップして読出し処理を終了する。
 [リファレンスデータ書直しおよびリフレッシュ処理(メモリの処理)]
 図28は、本技術の第7の実施の形態におけるリファレンスデータ書直しおよびリフレッシュ処理(ステップS750)の処理手順(メモリ)の一例を示す図である。同図の処理手順は、図27におけるステップS750に相当する処理手順である。まず、書込制御部310は、リファレンスデータの反転値をデータセルおよびリファレンスセルに書き込む(ステップS752)。これは、全てのビットをリファレンスデータの反転値とした書込みデータを該当するデータセルおよびリファレンスセルに書き込むことにより行われる。次に、書込制御部310は、リファレンスデータをデータセルおよびリファレンスセルに書き込む(ステップS753)。これは、全てのビットをリファレンスデータとした書込みデータを該当するデータセルおよびリファレンスセルに書き込むことにより行われる。その後、書込制御部310は、リファレンスデータ書直しおよびリフレッシュ処理を終了する。
 [書込み処理(メモリの処理)]
 図29は、本技術の第7の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。まず、書込制御部310は、書込みリクエストに付随する書込みデータをページバッファ380に転送する(ステップS741)。次に、書込制御部310は、プレリードを行う(ステップS742)。このプレリードの際、劣化検出部320により、データの劣化が検出された場合には(ステップS743:Yes)、書込制御部310は、リファレンスデータ書直しおよびリフレッシュを行う(ステップS750)。その後、書込制御部310は、ステップS745の処理に移行する。一方、データの劣化が検出されなかった場合には(ステップS743:No)、書込制御部310は、ステップS750の処理をスキップしてステップS745の処理に移行する。ステップS745において、書込制御部310は、データの書込みを行う(ステップS745)。次に、書込制御部310は、検証を行い(ステップS747)、この検証の結果をメモリコントローラ200に通知し(ステップS748)、書込み処理を終了する。
 このように、本技術の第7の実施の形態によれば、データの劣化の検出、リファレンスデータ書直しおよびリフレッシュの処理をメモリ300が行うため、メモリコントローラ200の処理を簡略化することができる。
 <8.第8の実施の形態>
 上述の第1の実施の形態では、ページ毎に1つのリファレンスセルが配置されたメモリセルアレイ350を使用していた。これに対し、本技術の第8の実施の形態では、ページ毎に複数のリファレンスセルが配置されたメモリセルアレイ350を使用する。これにより、データの劣化の検出精度を向上させることができる。
 [メモリセルアレイの構成]
 図30は、本技術の第8の実施の形態におけるメモリセルアレイ350の構成例を示す図である。同図のメモリセルアレイ350は、ページ毎に3ビットのリファレンスセル355が配置されて構成されている。これらのリファレンスセルから読み出されたリファレンスデータに基づいて、劣化検出部320により、データの劣化が検出される。本技術の第8の実施の形態の劣化検出部320は、リファレンスデータの多数決演算の結果に基づいて劣化の検出を行う。具体的には、過半数のリファレンスセルからリファレンスデータとして書き込んだ所定の値とは異なる値が読み出された場合に、劣化検出部320は、データが劣化したものと判断する。すなわち、複数のリファレンスセルの特性が平準化され、これに基づいてデータの劣化が検出される。これにより、リファレンスセルの特性のばらつきが大きい場合において、データの劣化の検出精度を向上させることができる。なお、多数決演算を行うため、ページ毎に配置されるリファレンスセルの個数は、奇数個にする必要がある。
 これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第8の実施の形態によれば、ページ毎の複数のリファレンスデータの多数決演算の結果に基づいてデータの劣化の検出が行われるため、データの劣化の検出精度を向上させることができる。
 [変形例]
 上述の本技術の第8の実施の形態では、多数決演算を行っていたが、書き込んだ所定の値とは異なる値が読み出されたリファレンスセルの個数と所定の閾値とを比較することにより、データの劣化を検出してもよい。この場合においても、リファレンスセルの特性のばらつきが平準化されるためである。例えば、ページ毎に10個のリファレンスセルが配置され、閾値として7を選択することができる。この場合、7個以上のリファレンスセルにおいて異なる値が読み出された場合に、データの劣化が検出される。
 <9.第9の実施の形態>
 上述の第1の実施の形態では、ページ毎に1つのリファレンスセルが配置されていた。これに対し、本技術の第9の実施の形態では、複数のページ毎に1つのリファレンスセルが配置されたメモリセルアレイ350を使用する。これにより、メモリセルアレイ350のリファレンスセルの個数を削減することができる。
 [メモリセルアレイの構成]
 図31は、本技術の第9の実施の形態におけるメモリセルアレイ350の構成例を示す図である。同図のメモリセルアレイ350は、2つのページからなるブロック毎にリファレンスセル355が配置されて構成されている。
 [メモリアクセス方法]
(a)リファレンスセルが配置されていないページに対するアクセスの場合
 例えば、図31に表したページのうちの奇数アドレスのページにアクセスする場合には、次のように処理を行う。メモリコントローラ200は、図26において説明した読出し処理および図23において説明した書込み処理を実行する。また、メモリ300は、図24において説明した読出し処理および図25において説明した書込み処理を実行する。
(b)リファレンスセルが配置されているページに対するアクセスの場合
 例えば、図31に表したページのうちの偶数アドレスのページにアクセスする場合には、次のように処理を行う。メモリコントローラ200は、図8において説明した読出し処理および図10において説明した書込み処理を実行する。また、メモリ300は、図11において説明した読出し処理および図12において説明した書込み処理を実行する。なお、データの劣化が検出された場合には、ブロックに含まれる全てのページに対してリフレッシュが行われる。
 これらにより、メモリ300に対するアクセスを行うことができる。このアクセスはページを単位として行われるため、図31に表したブロックにおいてリファレンスセルが配置されたページと配置されていないページとはデータの劣化の度合いが異なる。しかし、これらのページは隣接するため、同一の用途に使用するデータが記憶される可能性が高い。このため、これらのページに記憶されるデータの劣化の度合いは略等しいと考えることができる。これにより、1つリファレンスセルによりブロックに記憶されたデータの劣化を検出することができる。
 なお、ブロックを構成するページ数は、図31に表した例に限られない。例えば、4ページを1つのブロックにすることもできる。さらに、1つのメモリチップによりブロックを構成することもできる。この場合には、1つリファレンスセルによりメモリチップに記憶された全てのデータの劣化が検出される。また、リファレンスセルの配置は、同図に表した例に限られない。例えば、所定のページにリファレンスセルのみを配置した構成を採ることもできる。この場合には、メモリコントローラ200は、所定のタイミングでリファレンスセルからの読出しを行い、データの劣化を検出する必要がある。通常のメモリ300に対するアクセスでは、リファレンスセルに対する読出しが行われないためである。
 これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300の構成と同様であるため、説明を省略する。
 このように、本技術の第9の実施の形態によれば、複数のページにより構成されたブロック毎にリファレンスセルが配置されるため、リファレンスセルの個数を削減することができ、メモリセルアレイ350を小型化することができる。
 上述のように、本技術の実施の形態によれば、リファレンスセルから読み出したリファレンスデータに基づいてデータの劣化を検出し、リフレッシュを行う。これにより、リフレッシュを行うタイミングを簡便な処理により取得することができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)書き込まれたデータを記憶するデータセルと、
 前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと
を具備する不揮発メモリ。
(2)前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部をさらに具備する前記(1)に記載の不揮発メモリ。
(3)前記劣化検出部における前記検出の際に前記データセルのデータを書直すリフレッシュの制御と前記リファレンスデータの書直しの制御とを略同時に行う書込み制御部をさらに具備する前記(2)に記載の不揮発メモリ。
(4)前記書込み制御部は、前記データセルへの書込みと前記劣化が早い前記所定の値を前記リファレンスデータとする前記リファレンスセルへの書込みとをさらに行う前記(3)に記載の不揮発メモリ。
(5)前記データセルおよび前記リファレンスセルは、書込み電圧を印加することにより書込みが行われ、
 前記書込み制御部は、前記データセルへの前記書込み電圧とは異なる第2の書込み電圧を印加することにより前記リファレンスデータを前記リファレンスセルに書き込む
前記(4)に記載の不揮発メモリ。
(6)前記データセルおよび前記リファレンスセルは、読出し電圧が印加された際に流れる電流である読出し電流を閾値に基づいて判別することにより読出しが行われ、
 前記データセルからの読出しと当該データセルからの読出しの際の前記閾値とは異なる第2の閾値に基づく判別による前記リファレンスセルからの読出しとを行う読出し制御部をさらに具備し、
 前記書込み制御部は、前記第2の閾値により近い値の前記読出し電流となる前記所定の値を前記リファレンスデータとして書き込む
前記(4)に記載の不揮発メモリ。
(7)前記書込み制御部は、前記データセルに記憶された値を反転させた後に前記データを書き込むことにより前記リフレッシュを行う前記(3)から(6)のいずれかに記載の不揮発メモリ。
(8)前記書込み制御部は、前記所定の値とは異なる値を書き込んだ後に前記所定の値をリファレンスデータとして書き込むことにより前記リファレンスデータの書直しを行う前記(3)から(7)のいずれかに記載の不揮発メモリ。
(9)前記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、
 前記リファレンスセルは、前記ページ毎に配置され、
 前記劣化検出部は、前記ページ毎に前記検出を行う
前記(2)から(8)のいずれかに記載の不揮発メモリ。
(10)前記リファレンスセルは、前記ページ毎に複数配置される前記(9)に記載の不揮発メモリ。
(11)前記劣化検出部は、前記複数のリファレンスセルから読み出された複数の前記リファレンスデータの多数決演算に基づいて前記検出を行う前記(10)に記載の不揮発メモリ。
(12)前記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、
 前記リファレンスセルは、複数の前記ページからなるブロック毎に配置され、
 前記劣化検出部は、前記ブロック毎に前記検出を行う
前記(2)から(8)のいずれかに記載の不揮発メモリ。
(13)書き込まれたデータを記憶するデータセルと前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルとを備える不揮発メモリの前記リファレンスセルから前記所定の値とは異なる値が読み出された際に前記データの劣化を検出する劣化検出部を具備するメモリコントローラ。
(14)書き込まれたデータを記憶するデータセルと、
 前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと、
 前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部と
を具備する記憶装置。
(15)書き込まれたデータを記憶するデータセルと、
 前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと、
 前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部と
を備える記憶装置と、
 前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(16)書き込まれたデータを記憶するデータセルと前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスデータ出力手順を具備する不揮発メモリの制御方法。
 100 ホストコンピュータ
 110、210 プロセッサ
 120、330 メモリコントローラインターフェース
 200 メモリコントローラ
 220 劣化検出部
 230 ホストインターフェース
 240 ECC処理部
 250 アドレス変換部
 260 代替処理部
 270 メモリインターフェース
 280 バッファ
 300 メモリ
 310 書込制御部
 320 劣化検出部
 340 読出制御部
 350 メモリセルアレイ
 351 記憶素子
 352 MOSトランジスタ
 353 メモリセル
 354 データセル
 355 リファレンスセル
 380 ページバッファ

Claims (16)

  1.  書き込まれたデータを記憶するデータセルと、
     前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと
    を具備する不揮発メモリ。
  2.  前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部をさらに具備する請求項1記載の不揮発メモリ。
  3.  前記劣化検出部における前記検出の際に前記データセルのデータを書直すリフレッシュの制御と前記リファレンスデータの書直しの制御とを略同時に行う書込み制御部をさらに具備する請求項2記載の不揮発メモリ。
  4.  前記書込み制御部は、前記データセルへの書込みと前記劣化が早い前記所定の値を前記リファレンスデータとする前記リファレンスセルへの書込みとをさらに行う請求項3記載の不揮発メモリ。
  5.  前記データセルおよび前記リファレンスセルは、書込み電圧を印加することにより書込みが行われ、
     前記書込み制御部は、前記データセルへの前記書込み電圧とは異なる第2の書込み電圧を印加することにより前記リファレンスデータを前記リファレンスセルに書き込む
    請求項4記載の不揮発メモリ。
  6.  前記データセルおよび前記リファレンスセルは、読出し電圧が印加された際に流れる電流である読出し電流を閾値に基づいて判別することにより読出しが行われ、
     前記データセルからの読出しと当該データセルからの読出しの際の前記閾値とは異なる第2の閾値に基づく判別による前記リファレンスセルからの読出しとを行う読出し制御部をさらに具備し、
     前記書込み制御部は、前記第2の閾値により近い値の前記読出し電流となる前記所定の値を前記リファレンスデータとして書き込む
    請求項4記載の不揮発メモリ。
  7.  前記書込み制御部は、前記データセルに記憶された値を反転させた後に前記データを書き込むことにより前記リフレッシュを行う請求項3記載の不揮発メモリ。
  8.  前記書込み制御部は、前記所定の値とは異なる値を書き込んだ後に前記所定の値をリファレンスデータとして書き込むことにより前記リファレンスデータの書直しを行う請求項3記載の不揮発メモリ。
  9.  前記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、
     前記リファレンスセルは、前記ページ毎に配置され、
     前記劣化検出部は、前記ページ毎に前記検出を行う
    請求項2記載の不揮発メモリ。
  10.  前記リファレンスセルは、前記ページ毎に複数配置される請求項9記載の不揮発メモリ。
  11.  前記劣化検出部は、前記複数のリファレンスセルから読み出された複数の前記リファレンスデータの多数決演算に基づいて前記検出を行う請求項10記載の不揮発メモリ。
  12.  前記データセルは、ページサイズにより分割されたページを単位としてアクセスされ、
     前記リファレンスセルは、複数の前記ページからなるブロック毎に配置され、
     前記劣化検出部は、前記ブロック毎に前記検出を行う
    請求項2記載の不揮発メモリ。
  13.  書き込まれたデータを記憶するデータセルと前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルとを備える不揮発メモリの前記リファレンスセルから前記所定の値とは異なる値が読み出された際に前記データの劣化を検出する劣化検出部を具備するメモリコントローラ。
  14.  書き込まれたデータを記憶するデータセルと、
     前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと、
     前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部と
    を具備する記憶装置。
  15.  書き込まれたデータを記憶するデータセルと、
     前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスセルと、
     前記所定の値とは異なる値が前記リファレンスセルから読み出された際に前記データの劣化の検出を行う劣化検出部と
    を備える記憶装置と、
     前記記憶装置にアクセスするホストコンピュータと
    を具備する情報処理システム。
  16.  書き込まれたデータを記憶するデータセルと前記データセルと同一チップに形成されて前記データと略同時に所定の値をリファレンスデータとして記憶して前記データの劣化を検出するために前記リファレンスデータを出力するリファレンスデータ出力手順を具備する不揮発メモリの制御方法。
PCT/JP2016/063542 2015-07-13 2016-05-02 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法 WO2017010147A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015139554A JP2017021877A (ja) 2015-07-13 2015-07-13 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
JP2015-139554 2015-07-13

Publications (1)

Publication Number Publication Date
WO2017010147A1 true WO2017010147A1 (ja) 2017-01-19

Family

ID=57756933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/063542 WO2017010147A1 (ja) 2015-07-13 2016-05-02 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法

Country Status (2)

Country Link
JP (1) JP2017021877A (ja)
WO (1) WO2017010147A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10971197B2 (en) 2017-03-09 2021-04-06 Sony Semiconductor Solutions Corporation Control circuit, semiconductor memory device, information processing device, and control method
US11087813B2 (en) 2017-03-09 2021-08-10 Sony Semiconductor Solutions Corporation Control circuit, semiconductor memory device, information processing device, and control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202383A (ja) * 2005-01-19 2006-08-03 Elpida Memory Inc メモリ装置及びそのリフレッシュ方法
WO2012039415A1 (ja) * 2010-09-21 2012-03-29 日本電気株式会社 半導体装置およびその制御方法
WO2012140903A1 (ja) * 2011-04-13 2012-10-18 パナソニック株式会社 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置
JP2014041573A (ja) * 2012-08-24 2014-03-06 Sony Corp 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202383A (ja) * 2005-01-19 2006-08-03 Elpida Memory Inc メモリ装置及びそのリフレッシュ方法
WO2012039415A1 (ja) * 2010-09-21 2012-03-29 日本電気株式会社 半導体装置およびその制御方法
WO2012140903A1 (ja) * 2011-04-13 2012-10-18 パナソニック株式会社 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置
JP2014041573A (ja) * 2012-08-24 2014-03-06 Sony Corp 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10971197B2 (en) 2017-03-09 2021-04-06 Sony Semiconductor Solutions Corporation Control circuit, semiconductor memory device, information processing device, and control method
US11087813B2 (en) 2017-03-09 2021-08-10 Sony Semiconductor Solutions Corporation Control circuit, semiconductor memory device, information processing device, and control method

Also Published As

Publication number Publication date
JP2017021877A (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
US11231992B2 (en) Memory systems for performing failover
US8892981B2 (en) Data recovery using outer codewords stored in volatile memory
CN101763904B (zh) 非易失性存储装置及其操作方法
KR101950758B1 (ko) 반도체 장치
US20100269000A1 (en) Methods and apparatuses for managing bad memory cell
KR20180065423A (ko) 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
EP2800097B1 (en) Storage control device, storage device, information processing system, and processing methods therefor
KR102535110B1 (ko) 저장 장치 및 그 동작 방법
US11030041B2 (en) Decoding method, associated flash memory controller and electronic device
KR20180000594A (ko) 반도체장치 및 반도체시스템
CN114446375A (zh) 计算系统及其操作方法
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
EP2799998A1 (en) Storage control device, storage device, information processing system, and processing methods in same
KR20190060258A (ko) 에러스크럽방법 및 이를 이용한 반도체모듈
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
CN112052116A (zh) 存储器系统、存储器控制器和元信息存储装置
KR20200056880A (ko) 저장 장치 및 그 동작 방법
KR20170133545A (ko) 반도체장치 및 반도체시스템
CN103577341A (zh) 存储控制装置、存储装置及其处理方法
US11868647B2 (en) Nonvolatile memory device, with valley search for threshold voltage, memory controller, and reading method of storage device including the same
KR20180055148A (ko) 반도체장치 및 반도체시스템
KR20180027655A (ko) 테스트방법 및 이를 이용한 반도체시스템
KR20170143084A (ko) 반도체장치 및 반도체시스템
US10002673B2 (en) Flash memory data storage device and programming method thereof

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: 16824128

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16824128

Country of ref document: EP

Kind code of ref document: A1