WO2014083811A1 - 半導体記憶装置およびその制御方法 - Google Patents

半導体記憶装置およびその制御方法 Download PDF

Info

Publication number
WO2014083811A1
WO2014083811A1 PCT/JP2013/006852 JP2013006852W WO2014083811A1 WO 2014083811 A1 WO2014083811 A1 WO 2014083811A1 JP 2013006852 W JP2013006852 W JP 2013006852W WO 2014083811 A1 WO2014083811 A1 WO 2014083811A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
unit
mirror
error
Prior art date
Application number
PCT/JP2013/006852
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 学校法人中央大学
Priority to US14/648,022 priority Critical patent/US9684464B2/en
Priority to KR1020157014282A priority patent/KR101700057B1/ko
Priority to CN201380071951.1A priority patent/CN104969202B/zh
Priority to JP2014549804A priority patent/JP6327714B2/ja
Publication of WO2014083811A1 publication Critical patent/WO2014083811A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

Definitions

  • the present invention relates to a semiconductor memory device and a control method thereof, and more particularly to a semiconductor memory device including a nonvolatile memory and a control method thereof.
  • SSD Solid State Drive
  • the conventional storage system has a structure having many layers such as a server, a disk array, an SSD, and a NAND flash memory.
  • data is made redundant.
  • reliability has been improved by performing error correction.
  • RAID Redundant Arrays of Independent Disks
  • an object of the present invention made in view of such a point is to provide a semiconductor memory device that is highly reliable and that can efficiently control an SSD in one layer and a control method therefor.
  • a semiconductor memory device includes at least one of a primary memory, a mirror memory storing data corresponding to data stored in the primary memory, and a buffer memory. And a control device that controls the at least one memory, stores data in the at least one memory, and reads data from the at least one memory.
  • the control device includes an error correction encoding unit that performs error correction encoding on the data received from the host device, and page unit data is written to the error correction encoding unit.
  • a page RAID unit that calculates a parity bit in the bit line direction and stores the parity bit in the buffer memory, and a reverse mirror unit that stores data received from the page RAID unit in the primary memory and the mirror memory,
  • the primary memory stores the received data as it is, and the mirror memory stores a reverse mirror unit that changes the order of the received data, and an error reduction unit that reads data from the primary memory and the mirror memory.
  • An error reduction unit that outputs data obtained by estimation, an error correction decoding unit that performs error correction decoding on the data received from the error reduction unit, and an error acquired from the error correction decoding unit during error correction decoding
  • An error masking unit for receiving position information, storing the error position information in the buffer memory, the primary memory or the mirror memory; When parts are error correction decoding the data, the buffer memory, said from the primary memory or the mirror memory reads the error location information preferably comprises an error masking unit to be provided to the error correction decoding unit.
  • a semiconductor memory device includes a primary memory, a mirror memory in which data corresponding to data stored in the primary memory is stored, and received data in the primary memory and A control device for storing in the mirror memory, wherein the received data is stored as it is in the primary memory, and a page for storing the received data is controlled in the mirror memory based on a predetermined rule. And a control device for storing the data.
  • a semiconductor memory device includes a primary memory, a mirror memory in which data corresponding to data stored in the primary memory is stored, and received data in the primary memory and A reverse mirror unit for storing in the mirror memory, wherein the received data is stored in the primary memory as it is, and a reverse mirror unit for storing the data by changing the order of the received data in the mirror memory With.
  • a semiconductor memory device includes a primary memory, a mirror memory in which data corresponding to data stored in the primary memory is stored, and received data in the primary memory and A shift mirror unit for storing in the mirror memory, wherein the received data is stored in the primary memory as it is, and a shift mirror unit for shifting and storing the page for storing the received data in the mirror memory With.
  • a semiconductor memory device includes a primary memory, a mirror memory in which data corresponding to data stored in the primary memory is stored, the primary memory, and the mirror memory.
  • An error reduction unit for reading data wherein data is read from the primary memory as first data, data corresponding to the first data is read from the mirror memory as second data, and the first data If the first data and the second data match, the first data is output. If the first data and the second data do not match, the first data and the second data are output.
  • An error reduction unit that outputs data obtained by estimating that a bit error in a dominant direction has occurred in any of the data of 2.
  • a semiconductor memory device includes a buffer memory, an error correction encoding unit that performs error correction encoding on data received from a host device, and data in units of pages is the error correction code. And a RAID unit that calculates a parity bit in the bit line direction and stores the parity bit in the buffer memory each time data is written to the conversion unit.
  • a semiconductor storage device includes an error correction decoding unit that performs error correction decoding on received data, and an error position acquired from the error correction decoding unit during error correction decoding.
  • An error masking unit that receives information, stores the error position information in the memory, and when the error correction decoding unit performs error correction decoding of the data, reads the previous error position information from the memory, and And an error masking unit provided to the error correction decoding unit.
  • a method for controlling a semiconductor memory device includes a primary memory, a mirror memory storing data corresponding to data stored in the primary memory, and a buffer memory.
  • a method for controlling a semiconductor memory device comprising at least one memory, comprising: controlling the at least one memory to store data in the at least one memory; and controlling the at least one memory. Reading the data from the at least one memory.
  • the present invention it is possible to provide a semiconductor memory device that is highly reliable and that can efficiently control an SSD in one layer and a control method thereof.
  • FIG. 1 is a diagram showing a schematic configuration of a semiconductor memory device according to an embodiment of the present invention. It is a figure which shows schematic structure of the reverse mirror part which concerns on one Embodiment of this invention. It is a figure which shows an example of a structure of NAND flash memory. It is a graph which shows the dependence to upper page / lower page of write-in BER. It is a graph which shows the dependence to the page number of data retention BER. It is a figure which shows an example of a mode that data are stored in a primary memory and a mirror memory. It is an example of the data reading method in a write error main cause condition. It is an example of the data reading method in a data retention error main cause condition.
  • 6 is a graph comparing the dependence of the write BER on the number of rewrites.
  • 6 is a graph comparing the dependence of the write BER on the number of rewrites. It is the graph which compared the dependence to the frequency
  • FIG. 1 is a diagram showing a schematic configuration of a semiconductor memory device according to an embodiment of the present invention.
  • the semiconductor storage device includes a host device 1, a control device 2, a primary memory 3, a mirror memory 4, and a buffer memory 5.
  • the primary memory 3, the mirror memory 4, and the buffer memory 5 are simplified and illustrated one by one, but this is a simplified diagram, and the primary memory 3, the mirror memory 4, and the buffer memory 5 are illustrated. Each may be a plurality.
  • the primary memory 3, the mirror memory 4 and the buffer memory 5 do not have a hierarchical structure. Therefore, the control device 2 can collectively control the primary memory 3, the mirror memory 4, and the buffer memory 5 without duplicating the same function.
  • control device 2 performs processing such as error correction coding on the data received from the host device 1 and stores it in the primary memory 3. Further, the control device 2 stores data corresponding to the data stored in the primary memory 3 in the mirror memory 4 in order to store the data redundantly. Processing other than error correction encoding performed by the control device 2 will be described later.
  • control device 2 reads data from the primary memory 3 and the mirror memory 4.
  • the control device 2 performs processing such as error correction decoding on the received data, and provides the host device 1 with data subjected to processing such as error correction decoding. Processing other than error correction decoding performed by the control device 2 will be described later.
  • the primary memory 3 and the mirror memory 4 are nonvolatile memories, for example, NAND flash memories. In order to improve reliability, data corresponding to both the primary memory 3 and the mirror memory 4 is stored.
  • the buffer memory 5 is a memory used for temporarily storing data.
  • the buffer memory 5 is frequently written and read by the control device 2. Therefore, it is preferable to use a resistance change type memory (ReRAM: Resistance Random Access Memory) having the characteristics that the write / read time is short and the number of rewrites is large. However, it is not essential to be a ReRAM.
  • a NAND flash memory a DRAM (Dynamic Random Access Memory), a magnetoresistive memory (MRAM: Magnetoresistive Random Access Memory), a phase change memory (PCRAM: Phase Change Random)
  • Various memories can be used such as Access Memory) and ferroelectric memory (FeRAM: Ferroelectric Random Access Memory).
  • a memory different from the primary memory 3 and the mirror memory 4 is used as the buffer memory 5.
  • a part of the primary memory 3 and / or the mirror memory 4 is used as a buffer memory. It can also be used.
  • the control device 2 includes an error correction encoding unit 10, a page RAID unit 20, an inverse mirror unit 30, an error reduction unit 40, an error correction decoding unit 50, and an error masking unit 60.
  • the error correction encoding unit 10 performs error correction encoding on the data received from the host device 1. Subsequently, the page RAID unit 20 generates a parity bit by an exclusive OR (XOR) operation.
  • the reverse mirror unit 30 performs reverse mirroring on the data, and stores the original data and the reverse mirrored data in the primary memory 3 and the mirror memory 4, respectively. The technical meaning of “reverse mirroring” will be described later. Note that the page RAID unit 20 generates a parity bit by an exclusive OR operation, and the parity bit may be generated by another operation method.
  • the error reduction unit 40 reads data from the primary memory 3 and the mirror memory 4. Subsequently, the error correction decoding unit 50 executes error correction decoding. Further, the error correction decoding unit 50 provides the error masking unit 60 with the error position information acquired at the time of error correction decoding. Further, the error correction decoding unit 50 receives error position information at the time of previous reading from the error masking unit 60 and corrects data at the error position.
  • FIG. 2 is a diagram showing a schematic configuration of the reverse mirror unit 30 according to the embodiment of the present invention.
  • the reverse mirror unit 30 includes an input unit 31, a primary output unit 32, a conversion unit 33, and a mirror output unit 34.
  • the input unit 31 When receiving the data, the input unit 31 provides the data to the primary output unit 32 and the buffer memory 5.
  • the primary output unit 32 stores the received data in the primary memory 3 as it is.
  • the conversion unit 33 reads the data from the buffer memory 5 in the reverse order and provides the data to the mirror output unit 34.
  • the mirror output unit 34 stores the data in the reverse order in the mirror memory 4.
  • the conversion unit 33 has been described as receiving data from the input unit 31 via the buffer memory 5. However, the buffer memory 5 is not essential, and the conversion unit 33 receives data directly from the input unit 31 and receives the data in the order. May be reversed.
  • FIG. 3 is a diagram showing an example of the configuration of a 2-bit MLC (Multiple Level Cell) NAND flash memory per memory cell.
  • a 2-bit MLC NAND flash memory per memory cell each memory cell has a lower page and an upper page and stores data of 2 bits.
  • the primary memory 3 and the mirror memory 4 are assumed to be 2-bit MLC NAND flash memories per memory cell and have page numbers from 0 to 255.
  • FIG. 4 is a graph with the page number as the horizontal axis and the BER (Bit Error Rate) (hereinafter referred to as “write BER”) of the data written after rewriting the data a predetermined number of times as the vertical axis.
  • FIG. 4 shows BER measurement results when the number of rewrites is 10k (10 times 103 times).
  • the data write BER written to the upper page is smaller than the data write BER written to the lower page. Therefore, it is preferable that all data can be read from the upper page.
  • FIG. 5 is a graph in which the page number is the horizontal axis, and the BER (hereinafter referred to as “data retention BER”) at the time when a predetermined time elapses after the data is rewritten a predetermined number of times is the vertical axis.
  • FIG. 5 is a measurement result of BER when 10 hours have passed at 85 ° C. after rewriting 10k times.
  • the data retention BER tends to deteriorate as the page number increases. Therefore, it is preferable that all data can be read from the page with the smaller page number.
  • FIG. 6 shows a state in which data is stored in the mirror memory 4 with the data order reversed from that of the primary memory 3.
  • data 0 to data 255 are stored in page 0 to page 255 in the order of data 255 to data 0 in the mirror memory 4.
  • the data described in the lower page in the primary memory 3 can be stored in the upper page in the mirror memory 4.
  • data 0 is stored in the lower page (page 0) in the primary memory 3, but is stored in the upper page (page 255) in the mirror memory 4.
  • data described in the page with the large page number in the primary memory 3 can be stored in the page with the small page number in the mirror memory 4.
  • data 255 is stored in page 255 in primary memory 3, but is stored in page 0 in mirror memory 4.
  • FIG. 7A shows an example of a reading method for improving the worst BER under conditions where write errors are the main cause (hereinafter referred to as “write error main cause conditions”).
  • the worst BER is the largest BER among all the page numbers.
  • odd-numbered data data 1, data 3
  • even-numbered data data 0, data 2
  • All data can be read from the upper page, and the worst BER is improved.
  • FIG. 7B shows an example of a reading method for improving the worst BER under a condition mainly caused by a data retention error (hereinafter referred to as “data retention error main cause condition”).
  • data retention error main cause condition a data retention error
  • data 0 to 127 is read from the primary memory 3 and data 128 to 255 is read from the mirror memory 4, so that all data can be read from the page with the smaller page number, and the worst BER is Improve.
  • FIG. 8A shows a graph comparing the write BER between the conventional case and the case where reverse mirroring is applied under the write error main cause condition.
  • the black square shows the conventional measurement result
  • the white square shows the measurement result obtained by applying reverse mirroring.
  • the worst BER was improved by 69% by applying reverse mirroring.
  • FIG. 8B shows a graph comparing the data retention BER between the conventional case and the case where reverse mirroring is applied in the data retention error main cause condition.
  • the black square shows the conventional measurement result
  • the white square shows the measurement result obtained by applying reverse mirroring.
  • the worst BER was improved by 41% by applying reverse mirroring.
  • the worst BER can be improved by applying reverse mirroring in this way and reading all data from the upper page or reading from the page with the smaller page number. Which reading method is selected can be determined depending on whether a write error or a data retention error is improved.
  • the optimal data storage method may vary depending on the characteristics of the primary memory 3 and the mirror memory 4.
  • the reverse mirror unit 30 changes the data order so as to be in the optimum order according to the characteristics of the primary memory 3 and the mirror memory 4, and stores the data in the mirror memory 4.
  • the method of reading data from only the upper page and the method of reading data from only the smaller page number described above are merely examples, and are not limited thereto.
  • the optimum data reading method can vary depending on the characteristics of the primary memory 3 and the mirror memory 4. For example, when the primary memory 3 and the mirror memory 4 have a characteristic that the BER is smaller with the larger page number, it may be preferable to read data from the side with the larger page number.
  • the conversion unit 33 cooperates with the error reduction unit 40 described later to reduce the worst BER, not only reverse the order of the data, but also invert the bits to convert the data. Is stored in the mirror memory 4.
  • inverting the bit means that “0” data is “1” and “1” data is “0”.
  • the technical meaning that the converting unit 33 inverts the bits will be described in detail in the description of the error reducing unit 40.
  • FIG. 9 is a diagram illustrating a schematic configuration of the error reduction unit 40 according to an embodiment of the present invention.
  • the error reduction unit 40 includes a primary input unit 41, a mirror input unit 42, a bit re-inversion unit 43, and a determination unit 44.
  • Primary input unit 41 reads data from primary memory 3 and provides data to determination unit 44.
  • the mirror input unit 42 reads data from the mirror memory 4 and provides the data to the bit re-inversion unit 43.
  • the bit re-inversion unit 43 inverts the bit of the data received from the mirror input unit 42 and provides the inverted data to the determination unit 44.
  • the reason why the bit re-inversion unit 43 inverts the bit is that the reverse mirror unit 30 inverts the bit and stores the data stored in the mirror memory 4 again to restore the original data.
  • the reverse mirror unit 30 inverts the bit and stores it in the mirror memory 4, and the data read by the error reduction unit 40 from the mirror memory 4
  • the technical meaning of re-inverting the bits and restoring them will be described later.
  • the determination unit 44 compares the data received from the primary input unit 41 and the bit re-inversion unit 43 to determine data that is estimated to be correct, and outputs the estimated data. How the determination unit 44 determines data that is estimated to be correct will be described in detail in the description of the flowchart of FIG.
  • bit inversion by the reverse mirror unit 30 and bit reinversion by the error reduction unit 40 will be described.
  • FIG. 10 is a diagram showing asymmetry in the error direction in the write BER of the NAND flash memory. As shown in FIG. 10, in the lower page, the error direction in which “1” is “0” is dominant, and in the upper page, the error direction in which “0” is “1” is dominant.
  • the reverse mirror unit 30 stores data so that the upper page and the lower page are paired in the primary memory 3 and the mirror memory 4. Accordingly, the data stored in the lower page (upper page) in the primary memory 3 is stored in the upper page (lower page) in the mirror memory 4.
  • the reverse mirror unit 30 stores the data in the mirror memory 4 without bit inversion, for example, the data stored in the lower page in the primary memory 3 and the data stored in the upper page in the mirror memory 4
  • the dominant error direction is the opposite. In this case, when the data read from the primary memory 3 and the mirror memory 4 do not match, it cannot be estimated whether the correct data is “0” or “1”.
  • the dominant error directions in the primary memory 3 and the mirror memory 4 coincide.
  • the data read from the primary memory 3 and the mirror memory 4 do not match, it is estimated that an error in the dominant direction has occurred in either the primary memory 3 or the mirror memory 4. Whether it is “0” or “1” can be estimated.
  • the error reduction unit 40 reinverts the bit and restores the data.
  • the error reduction unit 40 estimates correct data when the data read from the primary memory 3 and the mirror memory 4 do not match. can do. A procedure for the error reduction unit 40 to estimate correct data according to the flowchart of FIG. 11 will be described.
  • the primary input unit 41 reads data from the primary memory 3 (step S101).
  • the mirror input unit 42 reads the corresponding data from the mirror memory 4 (step S102). Note that steps S101 and S102 may be in the reverse order or simultaneously.
  • the bit re-inversion unit 43 re-inverts the bit of the data received from the mirror input unit 42 and provides it to the determination unit 44 (step S103).
  • the determination unit 44 determines whether or not the data received from the primary input unit 41 matches the data received from the bit re-inversion unit 43 (step S104).
  • step S104 If it is determined in step S104 that the data match, the determination unit 44 estimates that no error has occurred in either the primary memory 3 or the mirror memory 4, and is stored in the primary memory 3. The stored data is output (step S105).
  • step S104 If it is determined in step S104 that the data do not match, the determination unit 44 further determines whether the data read from the primary memory 3 is read from the lower page or the upper page. (Step S106).
  • step S106 If it is determined in step S106 that the data is read from the lower page of the primary memory 3, the determination unit 44 estimates that “1” is correct data and outputs data “1” (step S106). S107).
  • step S106 If it is determined in step S106 that the data is read from the upper page of the primary memory 3, the determination unit 44 estimates that “0” is correct data and outputs data “0” (step S106). S108).
  • FIG. 12 is a table showing some specific examples of processing of the error reduction unit 40.
  • FIG. 12 shows an example in which data is read from the lower page of the primary memory 3 and the upper page of the mirror memory 4.
  • Case 1 is a case where the lower page data of the primary memory 3 is “1” and the upper page data of the mirror memory 4 (data after bit reinversion, the same applies hereinafter) is “1”. In this case, since the data match, the error reduction unit 40 estimates that “1” is correct data and outputs “1”.
  • the error reduction unit 40 estimates that “1” is correct data and outputs “1”. . This estimate is correct.
  • Case 3 shows a case where the lower page data in the primary memory 3 has an error from “1” to “0” and the upper page data in the mirror memory 4 is “1”.
  • the error reduction unit 40 estimates that “1” is correct data and outputs “1”. . This estimate is correct.
  • Case 5 shows a case where the lower page data of the primary memory 3 is “0” and the upper page data of the mirror memory 4 is “0”. In this case, since the data match, the error reduction unit 40 estimates that “0” is correct data and outputs “0”.
  • the reverse mirror unit 30 and the error reduction unit 40 cooperate to reduce the BER has been described as an example. However, only the error reduction unit 40 may be independently employed. . When the reverse mirroring is not adopted, the bit re-inversion in the error reduction unit 40 is not executed. When reverse mirroring is not employed, the reverse mirror unit 30 does not need the buffer memory 5.
  • the dominant error direction is the direction shown in FIG. 10
  • the present invention can be applied by estimating correct data in the same way.
  • FIG. 13 shows a graph comparing the write BER under the write error main cause condition in the case of the prior art employing normal mirroring and in the case of applying the above-described reverse mirroring and error reduction.
  • the black square shows the conventional measurement result
  • the white square shows the measurement result applying reverse mirroring and error reduction.
  • the worst BER was improved by 91% by applying reverse mirroring and error reduction.
  • 14A, 14B, 15A, and 15B show measurement results comparing the case of the conventional technique employing normal mirroring, the case of applying the above-described reverse mirroring, and the case of applying the above-described reverse mirroring and error reduction. Show.
  • the black squares show the conventional measurement results
  • the white triangles show the measurement results when reverse mirroring is applied
  • the white squares show the measurement results when reverse mirroring and error reduction are applied.
  • FIG. 14A shows the measurement results for a memory cell with a size of 2 ⁇ nm.
  • FIG. 14B shows the measurement results for a memory cell with a size of 1 ⁇ nm.
  • the size of 2X nm means that the size is about 20 to 30 nm.
  • the size of 1X nm means that the size is about 10 to 20 nm. The same applies to the following description.
  • the BER is improved by 69% by applying reverse mirroring to the conventional technique, and the error reduction is further applied to the reverse mirroring. On the other hand, BER improved by 91%.
  • FIG. 15A shows the measurement results after 506 hours have elapsed at 85 ° C. after rewriting the memory cell having a size of 2 ⁇ nm by the number of times of rewriting specified on the horizontal axis.
  • FIG. 15B shows the measurement results after 194 hours have elapsed at 85 ° C. after rewriting the memory cell having a size of 1 ⁇ nm by the number of times of rewriting specified on the horizontal axis.
  • the BER is improved by 41% by applying reverse mirroring to the conventional technique, and the error reduction is further applied to the reverse mirroring. On the other hand, the BER improved by 56%.
  • the BER is improved by 14% by applying the reverse mirroring to the conventional technique, and the error reduction is further applied to the reverse mirroring. BER improved by 30% over technology.
  • FIG. 16 is a diagram showing a schematic configuration of a semiconductor memory device according to an embodiment employing shift mirroring.
  • the semiconductor memory device employing “reverse mirroring” shown in FIG. 1 is that the control device 2 includes a shift mirror unit 70 instead of the reverse mirror unit 30, and the shift mirror unit 70 is connected to the buffer memory 5. Not different in that.
  • FIG. 17 is a diagram showing a schematic configuration of a shift mirror unit 70 according to an embodiment of the present invention.
  • the shift mirror unit 70 includes an input unit 71, a primary output unit 72, and a shift output unit 73.
  • the input unit 71 When the input unit 71 receives the data, the input unit 71 provides the data to the primary output unit 72 and the shift output unit 73.
  • the primary output unit 72 stores the received data in the primary memory 3 as it is.
  • the shift output unit 73 shifts the page storing data from the page stored in the primary memory 3 by the primary output unit 72 by the shift number i (i is an integer), and stores the received data in the mirror memory 4. .
  • the shift output unit 73 shifts the page storing data by the shift number i.
  • FIG. 18 shows an example of a state in which a page storing data in the mirror memory 4 is shifted by a predetermined shift number from a page storing data in the primary memory 3.
  • a unit composed of 128 memory cells in the bit line direction as shown in FIG. 18 is referred to as a “block”.
  • data n_0 to data n_255 are stored from page 0 to page 255.
  • the corresponding data is stored in a page shifted by a predetermined shift number.
  • data n_0 to data n_128 are stored in page 127 to page 255.
  • Data n_129 to data n_255 are stored in block n + 1 of the mirror memory 4 (not shown). Also, pages 0 to 126 in block n of the mirror memory 4 store data n-1_129 to data n-1_255 stored in page 129 to page 255 in block n ⁇ 1 of the primary memory 3. ing.
  • FIG. 19 shows an example of a process for storing a page for storing data in the mirror memory 4 by shifting the page from the page for storing data in the primary memory 3.
  • data 0_0 is stored in page 0 in block 0 of primary memory 3
  • data 0_0 is stored in page 255-i of block 0 in mirror memory 4.
  • data 0_i is stored in page i in block 0 of primary memory 3
  • data 0_i is stored in page 255 of block 0 in mirror memory 4.
  • data 0_i + 1 is stored in page i + 1 in block 0 of primary memory 3
  • data 0_i + 1 is stored in page 0 of block 1 in mirror memory 4.
  • data 0_255 is stored in page 255 in block 0 of primary memory 3
  • data 0_255 is stored in page 254-i of block 1 in mirror memory 4.
  • the shift mirror unit 70 can write the same data to the primary memory 3 and the mirror memory 4 at the same time, so the buffer memory 5 is unnecessary.
  • the shift number i can be set to an arbitrary value, and an appropriate value can be set according to the characteristics of the primary memory 3 and the mirror memory 4.
  • FIG. 20A shows a graph comparing the worst write BER between the conventional case, the case where reverse mirroring is applied, and the case where shift mirroring is applied.
  • the horizontal axis represents the number of shifts, and the worst BER of writing when shift mirroring is applied varies periodically depending on the number of shifts.
  • shift mirroring it is possible to improve the worst of the write BER to the same level as when reverse mirroring is applied by selecting a value that lowers the worst write BER as the number of shifts.
  • FIG. 20B shows a graph comparing the worst data retention BER between the conventional case, the case where reverse mirroring is applied, and the case where shift mirroring is applied.
  • the horizontal axis represents the number of shifts, and the worst of the data holding BER when shift mirroring is applied changes depending on the number of shifts.
  • the worst of the data retention BER is improved to the same level as when reverse mirroring is applied in the range where the number of shifts is about 110 to 144.
  • FIG. 21A shows a graph comparing the write BER between the conventional case and the case where shift mirroring is applied.
  • the black square shows the conventional measurement result
  • the white square shows the measurement result using shift mirroring.
  • the worst BER was improved by 57% by applying shift mirroring.
  • FIG. 21B shows a graph comparing the data retention BER between the conventional case and the case where shift mirroring is applied.
  • the black square shows the conventional measurement result
  • the white square shows the measurement result using shift mirroring.
  • the worst BER was improved by 41% by applying shift mirroring.
  • the page storing data in the mirror memory 4 is shifted from the page storing data in the primary memory 3, it is not always necessary to shift the pages uniformly. This is because the optimum data storage method can vary depending on the characteristics of the primary memory 3 and the mirror memory 4. For example, in order to optimally store data, the order in which the pages for storing data in the mirror memory 4 are uniformly shifted may be changed from those that are shifted uniformly.
  • FIG. 22 shows a state in which parity bits are added in the bit line (BL) direction by the page RAID unit 20.
  • the page RAID unit 20 calculates an exclusive OR for the data of each memory cell in the bit line direction in addition to the error correction code in the conventional word line (WL: Word Line) direction. By doing so, the parity bit is calculated.
  • the page RAID unit 20 stores the calculated parity bit in the buffer memory 5.
  • the page RAID unit 20 calculates parity bits in the bit line direction each time user data is written to the error correction encoding unit 10 in units of pages, and stores the calculated parity bits in the buffer memory 5.
  • the buffer memory 5 has a capacity of at least one page and updates and stores a parity bit for one page. As the buffer memory 5, it is preferable to use a ReRAM having a large number of rewritable times.
  • the page RAID unit 20 writes the parity bit stored in the buffer memory 5 to the page after the user data that has been written.
  • the parity bit may be written on the last page (the page with the largest page number), but is not limited to the last page, and may be written on the second page from the last or other pages.
  • the parity bit writing is not limited to one page, and the parity bit may be written to a plurality of pages.
  • the page RAID unit 20 updates the buffer memory 5 at most (number of pages-1) times before completing the writing of user data.
  • the number of pages is the number of pages in a block.
  • the buffer memory 5 When the NAND block is rewritable 4k times, the buffer memory 5 is required to be rewritable about 4k times 255 ⁇ 106 times. It can be handled because of the large number of times.
  • the page RAID unit 20 since the page RAID unit 20 frequently writes to the buffer memory 5, it is preferable that the writing speed is high from the viewpoint of the write access time. Also from this point, it is preferable to adopt ReRAM for the buffer memory 5.
  • FIG. 23A is a graph in which the horizontal axis represents the allowable number of rewrites of the buffer memory 5 and the vertical axis represents the ratio of the buffer memory 5 required for the user memory.
  • ReRAM has about 100 times the number of rewritable times compared to SLC NAND, and therefore the required buffer ratio is about 1/100.
  • the capacity required for the user memory is 0.1% or less.
  • FIG. 23B is a graph in which the horizontal axis represents the BER before error correction, and the vertical axis represents the BER after error correction.
  • the level required in the market as the BER after error correction is 10-15.
  • an acceptable BER is a BER before error correction that can achieve a BER of 10-15 after error correction.
  • FIG. 24 shows how a data retention error occurs in the NAND flash memory.
  • a data retention error occurs due to leakage of electrons from the floating gate.
  • 100 days have elapsed since the data was written, an error occurs that the data that was originally “0” becomes “1” in the third memory cell from the left and the third memory cell from the right. ing. Since the error is not recovered at the position where the error once occurred, the error is generated in the third memory cell from the left and the third memory cell from the right even after 200 days have passed.
  • an error has occurred that the second data from the right is also “1” and the data is “1”.
  • the control device 2 efficiently executes error correction decoding in view of the characteristics of the data retention error as described above of the NAND flash memory.
  • error masking the control device 2 executes two sequences of an error writing sequence and an error masking sequence. Each sequence will be described below.
  • FIG. 25 is a flowchart of the error writing sequence.
  • the error correction decoding unit 50 reads out the error correction encoded data (step S201).
  • the error correction decoding unit 50 performs error correction decoding on the read data, and outputs the data after error correction decoding.
  • the error correction decoding unit 50 acquires information (hereinafter referred to as “error position information”) indicating in which memory cell the error has occurred (step S202).
  • the error masking unit 60 acquires error position information from the error correction decoding unit 50, and compresses the acquired error position information (step S203).
  • An example of the compression method executed by the error masking unit 60 will be described later.
  • the error masking unit 60 can also acquire error position information by other methods. For example, the error masking unit 60 compares the data written separately in the highly reliable memory (for example, the buffer memory 5) with the data read from the primary memory 3 or the mirror memory 4 and the like to thereby obtain error position information. You can also get
  • the error masking unit 60 stores the compressed error position information in the buffer memory 5 (step S204).
  • FIG. 26 is a flowchart of the error masking sequence.
  • the error masking unit 60 reads the previous error position information compressed from the buffer memory 5 (step S301). The error masking unit 60 decompresses the compressed error position information (step S302).
  • the error correction decoding unit 50 acquires the error position information from the error masking unit 60, and deletes the error in the data (step S303).
  • the error correction decoding unit 50 performs error correction decoding (step S304).
  • the error correction decoding unit 50 outputs the data subjected to error correction decoding (step S305).
  • the control device 2 can effectively execute error masking by executing the error writing sequence and the error masking sequence at appropriate timing. For example, an error writing sequence may be executed at the time of data reading up to a predetermined time after data writing, and an error masking sequence may be executed at the time of data reading after a predetermined time. Further, the control device 2 may execute both the error writing sequence and the error masking sequence when reading data after a predetermined time.
  • FIG. 27 shows an example in which the error masking unit 60 compresses the error position information.
  • the error position information is, for example, a table in which “0” is a position where there is no error and “1” is a position where an error has occurred.
  • the error occurrence rate is usually low, It becomes “0” at the position of, and rarely becomes “1”.
  • the error masking unit 60 can efficiently compress error position information such that specific information continues in this way by, for example, run length compression (Run Length Encoding). For example, when the BER is 1%, the data amount can be reduced to 16% by run length compression. Note that run-length compression is an example, and other compression methods may be used.
  • FIG. 28 shows a graph comparing the case where error masking is applied to the case of BER and the case where error masking is not applied.
  • the BER improved by 67% in comparison after 200 hours from 85 ° C, and compared after 350 hours from 85 ° C. Improved BER by 55%.
  • the error masking unit 60 has been described as compressing the error position information, but this is not essential.
  • the error masking unit 60 may store the error position information in the buffer memory 5 without compressing the error position information.
  • the error position information is described as being stored in the buffer memory 5, but this is an example.
  • the error position information may be stored in other memories such as the primary memory 3 and the mirror memory 4.
  • the allowable BER (ABER: Acceptable BER) is increased 6.2 times in the data retention BER. As shown in FIG. 29, this corresponds to the fact that the allowable number of rewrites has doubled and the allowable data retention time has increased to 34 times.
  • the allowable BER is increased by 32 times in the write BER. As shown in FIG. 30, this corresponds to the allowable number of rewrites being 4.2 times.
  • FIG. 31 shows the numerical values described in FIGS. 29 and 30 in a table.
  • the semiconductor memory device can improve the reliability by improving the allowable BER, and can improve the reliability by efficiently controlling the SSD in one hierarchy.
  • the semiconductor memory device can improve the worst BER by applying reverse mirroring and reading data from the memory having a small BER of the primary memory 3 and the mirror memory 4.
  • the semiconductor memory device applies error reduction, and when the data read from the primary memory 3 and the mirror memory 4 do not match, correct data is obtained by utilizing the asymmetry in the error direction in the NAND flash memory. By estimating, the worst BER can be improved.
  • the semiconductor memory device can improve error correction capability by applying page RAID and adding parity bits in the bit line direction.
  • the semiconductor memory device can improve the worst BER by applying error masking and using error position information when data has been previously read.
  • the present invention has been described by taking a NAND flash memory as an example, the present invention is not limited to this, and other memories may be used as long as they have similar characteristics.
  • the NAND flash memory has been described by taking as an example a NAND flash memory having a 2-bit MLC per memory cell and a page number of 0 to 255.
  • the present invention is not limited to this, and NANDs of other configurations are used. It may be a flash memory.
  • the device configuration is applicable to all of reverse mirroring, error reduction, page RAID, and error masking, and the case where all are applied has been described as an example.
  • any one or two or more can be applied to the present invention. It is good also as a control which makes it a simple apparatus structure and applies any one or two or more.
  • those skilled in the art can omit unnecessary blocks according to common general knowledge. For example, when only page RAID is applied, mirroring is not essential, so the mirror memory 4 can be omitted. Similarly, when only error masking is applied, mirroring is not essential, and therefore the mirror memory 4 can be omitted.
  • the present invention can control the SSD in one layer, but can also be applied to a configuration composed of a plurality of layers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Read Only Memory (AREA)

Abstract

 信頼性を高め、かつ、1つの階層でSSDを効率的に制御する。 本発明に係る半導体記憶装置は、プライマリメモリ3と、プライマリメモリ3に格納されるデータに対応するデータが格納されるミラーメモリ4と、バッファメモリ5とのうちの少なくとも1つのメモリと、少なくとも1つのメモリを制御して、少なくとも1つのメモリにデータを格納し、少なくとも1つのメモリからデータを読み出す制御装置2とを備える。

Description

半導体記憶装置およびその制御方法 関連出願へのクロスリファレンス
 本出願は、日本国特許出願2012-263033号(2012年11月30日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
 本発明は、半導体記憶装置およびその制御方法に関し、特に、不揮発性メモリを備える半導体記憶装置およびその制御方法に関するものである。
 近年、ビッグデータを取り扱う企業などにおいて、高速、低消費電力という特徴を有するSSD(Solid State Drive)をストレージシステムに採用することの需要が高まっている。
 従来のストレージシステムは、図32に示す例のように、サーバ、ディスクアレイ、SSDおよびNANDフラッシュメモリなど、多くの階層を有する構成となっており、それぞれの階層で、データに冗長性を持たせ、また、エラー訂正を行うことにより、信頼性を向上させていた。
 また、複数の記憶装置を組み合わせて信頼性を向上させる技術として、様々な種類のRAID(Redundant Arrays of Independent Disks)が提案されている(例えば、非特許文献1参照)。
Mike Ault, "Oracle and RAID Usage", [online], [平成24年11月22日検索], インターネット<URL: http://www.dba-oracle.com/oracle_tips_raid_usage.htm>
 ビッグデータを取り扱うストレージシステムにおいては、階層を超えてデータをコピーすることが多い。しかしながら、従来のストレージシステムは多くの階層を有し、各階層に存在するコントローラが独立して、データの冗長性やエラー訂正を最適化していたため、重複している部分が多く効率の悪いシステムとなっているものが多かった。
 したがって、かかる点に鑑みてなされた本発明の目的は、信頼性が高く、かつ、1つの階層でSSDを効率的に制御することができる半導体記憶装置およびその制御方法を提供することにある。
 上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリと、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納し、前記少なくとも1つのメモリからデータを読み出す制御装置とを備える。
 また、本発明に係る半導体記憶装置において、前記制御装置は、ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と、前記ページRAID部から受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と、前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、前記プライマリメモリからデータを読み出して第1のデータとし、前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と、前記エラー低減部から受け取ったデータをエラー訂正復号するエラー訂正復号部と、前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、前記エラー位置情報を前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリに格納し、前記エラー訂正復号部がデータをエラー訂正復号する際に、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリから前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備えることが好ましい。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する制御装置であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データを格納するページを所定の規則に基づいて制御して、前記データを格納する制御装置とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データの順番を変更してデータを格納する逆ミラー部とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納するシフトミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データを格納するページをシフトさせて格納するシフトミラー部とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、前記プライマリメモリからデータを読み出して第1のデータとし、前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、バッファメモリと、ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するRAID部とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置は、受け取ったデータをエラー訂正復号するエラー訂正復号部と、前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、前記エラー位置情報を前記メモリに格納し、前記エラー訂正復号部がデータをエラー訂正復号する際に、前記メモリから以前の前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備える。
 また、上記課題を解決するため、本発明に係る半導体記憶装置の制御方法は、プライマリメモリと、当該プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリを備える半導体記憶装置の制御方法であって、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納する格納ステップと、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリからデータを読み出す読み出しステップとを含む。
 本発明によれば、信頼性が高く、かつ、1つの階層でSSDを効率的に制御することができる半導体記憶装置およびその制御方法を提供することができる。
本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。 本発明の一実施形態に係る逆ミラー部の概略構成を示す図である。 NANDフラッシュメモリの構成の一例を示す図である。 書き込みBERの上位ページ/下位ページへの依存性を示すグラフである。 データ保持BERのページ番号への依存性を示すグラフである。 プライマリメモリおよびミラーメモリにデータを格納する様子の一例を示す図である。 書き込みエラー主因条件におけるデータの読み出し方法の一例である。 データ保持エラー主因条件におけるデータの読み出し方法の一例である。 書き込みエラー主因条件において、逆ミラーリングを適用した場合にBERが改善する様子を示すグラフである。 データ保持エラー主因条件において、逆ミラーリングを適用した場合にBERが改善する様子を示すグラフである。 本発明の一実施形態に係るエラー低減部の概略構成を示す図である。 NANDフラッシュメモリの書き込みBERにおけるエラー方向の非対称性を示す図である。 本発明の一実施形態に係るエラー低減部の処理を示すフローチャートである。 本発明の一実施形態に係るエラー低減部が出力を判定する様子の例を示す図である。 逆ミラーリングおよびエラー低減を適用した場合にBERが改善する様子を示すグラフである。 書き込みBERの書き換え回数への依存性を比較したグラフである。 書き込みBERの書き換え回数への依存性を比較したグラフである。 データ保持BERの書き換え回数への依存性を比較したグラフである。 データ保持BERの書き換え回数への依存性を比較したグラフである。 本発明の他の実施形態に係る半導体記憶装置の概略構成を示す図である。 図16のシフトミラー部の概略構成を示す図である。 シフトミラーリングによりプライマリメモリおよびミラーメモリにデータを格納する様子の一例を示す図である。 シフトミラーリングによりプライマリメモリおよびミラーメモリにデータを格納する処理の一例を示す図である。 書き込みBERのワーストのシフト数への依存性を示す図である。 データ保持BERのワーストのシフト数への依存性を示す図である。 シフトミラーリングを適用した場合に書き込みBERが改善する様子を示すグラフである。 シフトミラーリングを適用した場合にデータ保持BERが改善する様子を示すグラフである。 本発明の一実施形態に係るページRAID部がビット線方向にパリティビットを生成する様子を示す図である。 ユーザメモリに対して必要なバッファ比のバッファメモリの許容書き換え回数への依存性を示す図である。 エラー訂正後のBERのエラー訂正前のBERへの依存性を比較したグラフである。 NANDフラッシュメモリにおけるデータ保持エラーの発生の様子の一例を示す図である。 本発明の一実施形態に係る制御装置の書き込みシーケンスのフローチャートである。 本発明の一実施形態に係る制御装置のエラーマスキングシーケンスのフローチャートである。 本発明の一実施形態に係るエラーマスキング部がエラー位置情報を圧縮する様子の一例を示す図である。 BERのデータ保持時間への依存性を比較したグラフである。 データ保持BERのデータ保持時間への依存性を示すグラフである。 書き込みBERの書き換え回数への依存性を示すグラフである。 本発明による効果をまとめた表である。 従来のストレージシステムの構成の一例である。
 以下、本発明に係る実施形態について、図面を参照して説明する。
[全体構成]
 図1は、本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示すように、半導体記憶装置は、ホスト装置1、制御装置2、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5を備える。
 なお、図1においては、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5について簡略化し、それぞれ1つずつ示したが、これは簡略化した図であり、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5は、それぞれ複数個であってよい。
 図1に示すように、本発明の一実施形態に係る半導体記憶装置においては、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5は階層構造を持たない。そのため、制御装置2は、同一の機能を重複させることなく、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5を一括して制御することができる。
 データ書き込み時においては、制御装置2は、ホスト装置1から受け取ったデータに対してエラー訂正符号化などの処理を行い、プライマリメモリ3に格納する。また、制御装置2は、データを冗長に格納するため、プライマリメモリ3に格納するデータに対応するデータをミラーメモリ4に格納する。制御装置2が行うエラー訂正符号化以外の処理については後述する。
 データ読み出し時においては、制御装置2は、プライマリメモリ3およびミラーメモリ4からデータを読み出す。制御装置2は、受け取ったデータに対して、エラー訂正復号などの処理を行い、ホスト装置1にエラー訂正復号などの処理をしたデータを提供する。制御装置2が行うエラー訂正復号以外の処理については後述する。
 プライマリメモリ3およびミラーメモリ4は、不揮発性のメモリであり、例えばNANDフラッシュメモリである。信頼性を高めるため、プライマリメモリ3とミラーメモリ4の両方に対応するデータが格納される。
 バッファメモリ5は、一時的にデータを格納する際に用いられるメモリである。バッファメモリ5は、制御装置2によってデータの書き込み/読み出しが頻繁に行われる。したがって、バッファメモリ5には、書き込み/読み出し時間が短く、書き換え可能回数が多いという特性を有する抵抗変化型メモリ(ReRAM:Resistance Random Access Memory)などを用いることが好ましい。しかしながら、ReRAMであることは必須ではなく、バッファメモリ5としては、NANDフラッシュメモリ、DRAM(Dynamic Random Access Memory)、磁気抵抗メモリ(MRAM:Magnetoresistive Random Access Memory)、相変化メモリ(PCRAM:Phase Change Random Access Memory)、強誘電体メモリ(FeRAM:Ferroelectric Random Access Memory)など、様々なメモリを用いることができる。
 また、この実施形態では、バッファメモリ5として、プライマリメモリ3およびミラーメモリ4とは別のメモリを用いているが、プライマリメモリ3、および/または、ミラーメモリ4内の一部の領域をバッファメモリとして使用することも可能である。
 制御装置2は、エラー訂正符号化部10、ページRAID部20、逆ミラー部30、エラー低減部40、エラー訂正復号部50およびエラーマスキング部60を備える。
 データ書き込み時においては、エラー訂正符号化部10は、ホスト装置1から受け取ったデータをエラー訂正符号化する。続いて、ページRAID部20は、排他的論理和(XOR)の演算によってパリティビットを生成する。逆ミラー部30は、データを逆ミラーリングして、元のデータと逆ミラーリングしたデータとを、それぞれ、プライマリメモリ3とミラーメモリ4とに格納する。「逆ミラーリング」の技術的意味については後述する。なお、ページRAID部20が、排他的論理和の演算によってパリティビットを生成するのは一例であり、その他の演算方法によってパリティビットを生成してもよい。
 データ読み出し時においては、エラー低減部40は、プライマリメモリ3およびミラーメモリ4からデータを読み出す。続いて、エラー訂正復号部50は、エラー訂正復号を実行する。また、エラー訂正復号部50は、エラー訂正復号時に取得したエラー位置情報をエラーマスキング部60に提供する。また、エラー訂正復号部50は、エラーマスキング部60から、以前の読み出し時におけるエラー位置情報を受け取り、エラー位置におけるデータを訂正する。
 制御装置2内の各ブロックの機能の詳細について、以下に詳述する。
[逆ミラーリング]
 図2は、本発明の一実施形態に係る逆ミラー部30の概略構成を示す図である。図2に示すように、逆ミラー部30は、入力部31、プライマリ出力部32、変換部33およびミラー出力部34を備える。
 入力部31は、データを受け取ると、プライマリ出力部32およびバッファメモリ5にデータを提供する。プライマリ出力部32は、受け取ったデータをそのままプライマリメモリ3に格納する。
 変換部33は、バッファメモリ5からデータの順番を逆にして読み出してミラー出力部34へデータを提供する。ミラー出力部34は、逆の順番となったデータをミラーメモリ4へ格納する。なお、変換部33が、バッファメモリ5を介して入力部31からデータを受け取るものとして説明したが、バッファメモリ5は必須ではなく、変換部33は、入力部31から直接データを受け取りデータの順番を逆にしてもよい。
 以下、変換部33がデータの順番を逆にすることにより、プライマリメモリ3とミラーメモリ4に格納されるデータの順番が逆になることの技術的意味を説明する。
 図3は、1メモリセルあたり2ビットのMLC(Multiple Level Cell)のNANDフラッシュメモリの構成の一例を示す図である。図3に示すように、1メモリセルあたり2ビットのMLCのNANDフラッシュメモリは、各メモリセルが下位ページと上位ページを有し2ビット分のデータを格納する。図3に示す例では、ビット線方向に128個のメモリセルがあるため、その2倍の256個のページがあり、256ビットのデータを格納する。以下、特に断らない限り、プライマリメモリ3およびミラーメモリ4は、1メモリセルあたり2ビットのMLCのNANDフラッシュメモリであり、0から255までのページ番号を有するものとして説明する。
 図4は、ページ番号を横軸、データを所定の回数だけ書き換えた後に書き込んだデータのBER(Bit Error Rate)(以下、「書き込みBER」と称する)を縦軸としたグラフである。図4は、書き換え回数が10k回(10ラ103回)の場合のBERの測定結果である。
 図4に示すように、NANDフラッシュメモリにおいては、上位ページに書き込まれたデータの書き込みBERの方が下位ページに書き込まれたデータの書き込みBERよりも小さい。したがって、全てのデータが上位ページから読み出せることが好ましい。
 図5は、ページ番号を横軸、データを所定の回数だけ書き換えた後に高温で所定の時間を経過した時点のBER(以下、「データ保持BER」と称する)を縦軸としたグラフである。図5は、10k回書き換えた後に85℃で10時間経過した時点のBERの測定結果である。
 図5に示すように、NANDフラッシュメモリにおいては、ページ番号が大きくなるにつれてデータ保持BERが劣化する傾向がある。したがって、全てのデータがページ番号の小さい側のページから読み出せることが好ましい。
 図6に、プライマリメモリ3とはデータの順番を逆にして、データをミラーメモリ4に格納する様子を示す。図6に示すように、データ0からデータ255は、ミラーメモリ4においては、データ255からデータ0の順でページ0からページ255に格納される。これにより、プライマリメモリ3では下位ページに記載されていたデータをミラーメモリ4では上位ページに格納することができる。例えば、データ0は、プライマリメモリ3では下位ページ(ページ0)に格納されるが、ミラーメモリ4では上位ページ(ページ255)に格納される。
 また、プライマリメモリ3ではページ番号の大きいページに記載されていたデータをミラーメモリ4ではページ番号の小さいページに格納することができる。例えば、データ255は、プライマリメモリ3ではページ255に格納されるが、ミラーメモリ4ではページ0に格納される。
 図7Aに、書き込みエラーが主因となる条件(以下、「書き込みエラー主因条件」と称する)において、ワーストBERを改善させる読み出し方法の例を示す。ここで、ワーストBERとは、全てのページ番号の中で最も大きいBERのことである。図7Aに示すように、奇数番号のデータ(データ1、データ3・・・)はプライマリメモリ3から読み出し、偶数番号のデータ(データ0、データ2・・・)はミラーメモリ4から読み出すことにより、全てのデータを上位ページから読み出すことができワーストBERが改善する。
 図7Bに、データ保持エラーが主因となる条件(以下、「データ保持エラー主因条件」と称する)において、ワーストBERを改善させる読み出し方法の例を示す。図7Bに示すように、データ0から127はプライマリメモリ3から読み出し、データ128から255はミラーメモリ4から読み出すことにより、全てのデータをページ番号の小さい側のページから読み出すことができワーストBERが改善する。
 図8Aに、書き込みエラー主因条件において、書き込みBERを、従来の場合と、逆ミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングを適用した測定結果を示す。図8Aに示すように、逆ミラーリングを適用することにより、ワーストBERが69%改善した。
 図8Bに、データ保持エラー主因条件において、データ保持BERを、従来の場合と、逆ミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングを適用した測定結果を示す。図8Bに示すように、逆ミラーリングを適用することにより、ワーストBERが41%改善した。
 このように逆ミラーリングを適用し、全てのデータを上位ページから読み出す、または、ページ番号の小さい側から読み出すことによって、ワーストBERを改善させることができる。どちらの読み出し方を選択するかは、書き込みエラーまたはデータ保持エラーのいずれを改善させるかに応じて決定することができる。
 なお、上記で説明した、ミラーメモリ4にデータの順番を逆にして格納する方法は、あくまで例示であって、これに限るものではない。最適なデータの格納方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得る。逆ミラー部30は、プライマリメモリ3およびミラーメモリ4の特性に応じて、最適な順番になるようにデータの順番を変更し、ミラーメモリ4にデータを格納する。
 また、上記で説明した、上位ページのみからデータを読み出す方法、および、ページ番号の小さい側のみからデータを読み出す方法は、あくまで例示であって、これに限るものではない。最適なデータの読み出し方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得る。例えば、プライマリメモリ3およびミラーメモリ4が、ページ番号が大きい方でBERが小さいという特性を有する場合は、ページ番号の大きい側からデータを読み出すことが好ましい場合もあり得る。
 また、本実施形態では、変換部33は、後述するエラー低減部40と協働して、ワーストBERを低減する場合は、データの順番を逆にするだけでなく、さらにビットを反転させてデータをミラーメモリ4に格納する。ここで、ビットを反転とは、”0”のデータを”1”とし、”1”のデータを”0”とすることを意味する。変換部33がビットを反転させることの技術的意味については、エラー低減部40の説明において詳述する。
[エラー低減]
 図9は、本発明の一実施形態に係るエラー低減部40の概略構成を示す図である。図9に示すように、エラー低減部40は、プライマリ入力部41、ミラー入力部42、ビット再反転部43および判定部44を備える。
 プライマリ入力部41は、プライマリメモリ3からデータを読み出して判定部44にデータを提供する。
 ミラー入力部42は、ミラーメモリ4からデータを読み出してビット再反転部43にデータを提供する。
 ビット再反転部43は、ミラー入力部42から受け取ったデータのビットを反転させ、反転させたデータを判定部44に提供する。ここで、ビット再反転部43がビットを反転させるのは、逆ミラー部30が、ビットを反転させてミラーメモリ4に格納したデータを、再反転させて元のデータに戻すためである。エラー低減部40が逆ミラー部30と協働してBERを低減する際に、逆ミラー部30がビットを反転してミラーメモリ4に格納し、エラー低減部40がミラーメモリ4から読み出したデータのビットを再反転して元に戻すことの技術的意味については後述する。
 判定部44は、プライマリ入力部41およびビット再反転部43から受け取ったデータを比較して正しいと推定されるデータを判定し、推定したデータを出力する。判定部44が、どのようにして正しいと推定されるデータを判定するかについては、図11のフローチャートの説明において詳述する。
 以下、逆ミラー部30によるビット反転、および、エラー低減部40によるビット再反転の技術的意味を説明する。
 図10は、NANDフラッシュメモリの書き込みBERにおけるエラー方向の非対称性を示す図である。図10に示すように、下位ページでは、”1”が”0”となるエラー方向が支配的であり、上位ページでは、”0”が”1”となるエラー方向が支配的である。
 逆ミラー部30は、プライマリメモリ3とミラーメモリ4とで上位ページと下位ページがペアになるようにデータを格納する。したがって、プライマリメモリ3で下位ページ(上位ページ)に格納されているデータは、ミラーメモリ4では上位ページ(下位ページ)に格納されている。
 そうすると、逆ミラー部30がビット反転せずにミラーメモリ4にデータを格納した場合、例えば、プライマリメモリ3で下位ページに格納されたデータと、ミラーメモリ4で上位ページに格納されたデータとでは、支配的なエラー方向が反対となる。この場合、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、正しいデータが”0”と”1”のどちらであるかが推定できない。
 そこで、逆ミラー部30がミラーメモリ4に格納するデータをビット反転させることにより、プライマリメモリ3とミラーメモリ4とで支配的なエラー方向が一致する。これにより、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、プライマリメモリ3とミラーメモリ4のいずれかで、支配的な方向のエラーが発生したと推定することにより、正しいデータが”0”と”1”のどちらであるかを推定できるようになる。
 この場合、逆ミラー部30がビットを反転させてミラーメモリ4にデータを格納するため、エラー低減部40はビットを再反転させてデータを元に戻す。
 上記のように、NANDフラッシュメモリの書き込みBERにおけるエラー方向に強い非対称性があることから、エラー低減部40は、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、正しいデータを推定することができる。図11のフローチャートに従って、エラー低減部40が正しいデータを推定する手順を示す。
 プライマリ入力部41は、プライマリメモリ3からデータを読み出す(ステップS101)。ミラー入力部42は、対応するデータをミラーメモリ4から読み出す(ステップS102)。なお、ステップS101とS102とは、逆の順番であっても構わないし、同時であっても構わない。
 ビット再反転部43は、ミラー入力部42から受け取ったデータのビットを再反転させて判定部44に提供する(ステップS103)。
 判定部44は、プライマリ入力部41から受け取ったデータとビット再反転部43から受け取ったデータが一致しているか否かを判定する(ステップS104)。
 ステップS104にて、データが一致していると判定した場合は、判定部44は、プライマリメモリ3とミラーメモリ4のいずれにおいてもエラーが発生しなかったものと推定し、プライマリメモリ3に格納されていたデータを出力する(ステップS105)。
 ステップS104にて、データが一致していないと判定した場合は、判定部44は、さらに、プライマリメモリ3から読み出したデータが、下位ページと上位ページのいずれから読み出したデータであるかを判定する(ステップS106)。
 ステップS106にて、プライマリメモリ3の下位ページから読み出したデータであると判定した場合は、判定部44は、”1”が正しいデータであると推定して、データ”1”を出力する(ステップS107)。
 ステップS106にて、プライマリメモリ3の上位ページから読み出したデータであると判定した場合は、判定部44は、”0”が正しいデータであると推定して、データ”0”を出力する(ステップS108)。
 図12は、エラー低減部40の処理のいくつかの具体例を示す表である。図12は、プライマリメモリ3の下位ページ、および、ミラーメモリ4の上位ページからデータを読み出した場合の例である。
 ケース1は、プライマリメモリ3の下位ページデータが”1”で、ミラーメモリ4の上位ページデータ(ビット再反転後のデータ、以下同様)が”1”である場合である。この場合、データが一致しているので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。
 ケース2は、プライマリメモリ3の下位ページデータが”1”で、ミラーメモリ4の上位ページデータが”1”から”0”へのエラー(ビット再反転前は、”0”から”1”へのエラー)を起こした場合を示す。この場合、データが一致しておらず、プライマリメモリ3のデータは下位ページから読み出したデータであるので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。この推定は正しい。
 ケース3は、プライマリメモリ3の下位ページデータが”1”から”0”へのエラーを起こし、ミラーメモリ4の上位ページデータが”1”である場合を示す。この場合、データが一致しておらず、プライマリメモリ3のデータは下位ページから読み出したデータであるので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。この推定は正しい。
 ケース4は、プライマリメモリ3の下位ページデータが”1”から”0”へのエラーを起こし、ミラーメモリ4の上位ページデータも”1”から”0”へのエラー(ビット再反転前は、”0”から”1”へのエラー)を起こした場合を示す。この場合、データが一致しているので、エラー低減部40は、”0”が正しいデータであると推定し”0”を出力する。この推定は正しくない。このように、プライマリメモリ3とミラーメモリ4の両方でエラーが発生した場合は、エラー低減部40は正しい値を推定することができない。しかしながら、プライマリメモリ3とミラーメモリ4の両方で同時にエラーが発生する確率は非常に小さいため、この場合に正しく推定できないことの影響は小さい。
 ケース5は、プライマリメモリ3の下位ページデータが”0”で、ミラーメモリ4の上位ページデータが”0”である場合を示す。この場合、データが一致しているので、エラー低減部40は、”0”が正しいデータであると推定し”0”を出力する。
 なお、上記説明においては、逆ミラー部30とエラー低減部40とで協働してBERを低減する場合を例に挙げて説明したが、エラー低減部40のみを独立して採用してもよい。逆ミラーリングを採用しない場合は、エラー低減部40におけるビット再反転は実行しない。また、逆ミラーリングを採用しない場合は、逆ミラー部30は、バッファメモリ5を必要としない。
 また、上記説明においては、支配的なエラー方向が図10に示す方向である場合を例に挙げて説明したが、これはあくまで一例である。例えば、支配的なエラー方向が図10に示す方向と逆の場合であっても、同様の考え方で正しいデータを推定することにより、本願発明は適用可能である。
 [逆ミラーリングおよびエラー低減の効果]
 図13に、書き込みエラー主因条件において、書き込みBERを、通常のミラーリングを採用する従来技術の場合と、上記の逆ミラーリングおよびエラー低減を適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングおよびエラー低減を適用した測定結果を示す。図13に示すように、逆ミラーリングおよびエラー低減を適用することにより、ワーストBERが91%改善した。
 図14A、14B、15Aおよび15Bに、通常のミラーリングを採用する従来技術の場合と、上記の逆ミラーリングを適用した場合と、上記の逆ミラーリングおよびエラー低減を適用した場合とを比較する測定結果を示す。黒四角が従来の測定結果、白三角が逆ミラーリングを適用した場合の測定結果、白四角が逆ミラーリングおよびエラー低減を適用した場合の測定結果を示す。
 図14Aおよび14Bは、横軸が書き換え回数、縦軸がブロック内のワースト書き込みBERである。図14Aは、サイズが2Xnmのメモリセルに対する測定結果である。図14Bは、サイズが1Xnmのメモリセルに対する測定結果である。ここで、サイズが2Xnmとはサイズが20~30nm程度であることを意味する。また、サイズが1Xnmとはサイズが10~20nm程度であることを意味する。以下の説明においても同様である。
 図14Aに示されるように、書き換え回数が10k回の場合、従来技術に対して逆ミラーリングを適用することでBERが69%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが91%改善した。
 また、図14Bに示されるように、書き換え回数が6k回の場合、従来技術に対して逆ミラーリングを適用することでBERが45%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが85%改善した。
 図15Aおよび15Bは、横軸が書き換え回数、縦軸がブロック内のワーストデータ保持BERである。図15Aは、サイズが2Xnmのメモリセルに対して、横軸で指定する書き換え回数だけ書き換えた後に、85℃で506時間経過させた後の測定結果である。図15Bは、サイズが1Xnmのメモリセルに対して、横軸で指定する書き換え回数だけ書き換えた後に、85℃で194時間経過させた後の測定結果である。
 図15Aに示されるように、書き換え回数が10k回の場合、従来技術に対して逆ミラーリングを適用することでBERが41%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが56%改善した。
 また、図15Bに示されるように、書き換え回数が6k回の場合、従来技術に対して逆ミラーリングを適用することでBERが14%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが30%改善した。
[シフトミラーリング]
 上述した「逆ミラーリング」の代わりに、「シフトミラーリング」を採用する実施形態を以下に説明する。図16は、シフトミラーリングを採用した実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示した「逆ミラーリング」を採用する半導体記憶装置とは、制御装置2が逆ミラー部30の代わりにシフトミラー部70を備える点、および、シフトミラー部70がバッファメモリ5に接続されていない点で異なる。
 図17は、本発明の一実施形態に係るシフトミラー部70の概略構成を示す図である。図17に示すように、シフトミラー部70は、入力部71、プライマリ出力部72およびシフト出力部73を備える。
 入力部71は、データを受け取ると、プライマリ出力部72およびシフト出力部73にデータを提供する。プライマリ出力部72は、受け取ったデータをそのままプライマリメモリ3に格納する。
 シフト出力部73は、データを格納するページを、プライマリ出力部72がプライマリメモリ3に格納するページから、シフト数i(iは整数)だけシフトさせて、受け取ったデータをミラーメモリ4に格納する。
 以下、シフト出力部73が、データを格納するページを、シフト数iだけシフトさせることについて詳細に説明する。
 図18に、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページから、所定のシフト数だけシフトさせる様子の一例を示す。以下、図18に示すようなビット線方向の128個のメモリセルからなる単位を「ブロック」と称することとする。図18に示すように、プライマリメモリ3のブロックn(n番目のブロック)においては、ページ0からページ255に、データn_0からデータn_255が格納されている。一方、ミラーメモリ4のブロックnにおいては、対応するデータが、所定のシフト数だけシフトさせたページに格納されている。例えば、データn_0からデータn_128が、ページ127からページ255に格納されている。また、データn_129からデータn_255は、図示していないミラーメモリ4のブロックn+1に格納されている。また、ミラーメモリ4のブロックnにおける、ページ0からページ126には、プライマリメモリ3のブロックn-1において、ページ129からページ255に格納されているデータn-1_129からデータn-1_255が格納されている。
 図19に、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページからシフトさせて格納する処理の一例を示す。プライマリメモリ3のブロック0において、データ0_0をページ0に格納する際、ミラーメモリ4においては、ブロック0のページ255-iにデータ0_0を格納する。また、プライマリメモリ3のブロック0において、データ0_iをページiに格納する際、ミラーメモリ4においては、ブロック0のページ255にデータ0_iを格納する。また、プライマリメモリ3のブロック0において、データ0_i+1をページi+1に格納する際、ミラーメモリ4においては、ブロック1のページ0にデータ0_i+1を格納する。また、プライマリメモリ3のブロック0において、データ0_255をページ255に格納する際、ミラーメモリ4においては、ブロック1のページ254-iにデータ0_255を格納する。
 図19に示すように、シフトミラー部70は、同一のデータをプライマリメモリ3とミラーメモリ4に同時に書き込むことが可能であるため、バッファメモリ5が不要である。
 シフト数iは任意の値に設定可能であり、プライマリメモリ3およびミラーメモリ4の特性に応じて適切な値を設定することができる。
 図20Aに、書き込みBERのワーストを、従来の場合と、逆ミラーリングを適用した場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。横軸はシフト数であり、シフトミラーリングを適用した場合の書き込みBERのワーストは、シフト数に依存して周期的に変化している。シフトミラーリングを適用した場合、シフト数として、書き込みBERのワーストが低くなる値を選択することにより、書き込みBERのワーストが逆ミラーリングを適用した場合と同等の程度まで改善させることができる。
 図20Bに、データ保持BERのワーストを、従来の場合と、逆ミラーリングを適用した場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。横軸はシフト数であり、シフトミラーリングを適用した場合のデータ保持BERのワーストは、シフト数に依存して変化している。図20Bに示すように、シフトミラーリングを適用した場合、シフト数が110~144程度の範囲において、データ保持BERのワーストが逆ミラーリングを適用した場合と同等の程度まで改善した。
 図21Aに、書き込みBERを、従来の場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角がシフトミラーリングを適用した測定結果を示す。図21Aに示すように、シフトミラーリングを適用することにより、ワーストBERが57%改善した。
 図21Bに、データ保持BERを、従来の場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角がシフトミラーリングを適用した測定結果を示す。図21Bに示すように、シフトミラーリングを適用することにより、ワーストBERが41%改善した。
 このようにシフトミラーリングを適用し、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページから、適切なシフト数iだけシフトさせることによって、バッファメモリ5を用いることなくワーストBERを改善させることができる。
 なお、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページからシフトする際は、必ずしも一律にページをシフトさせなくてもよい。最適なデータの格納方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得るからである。例えば、最適にデータを格納するため、ミラーメモリ4にデータを格納するページを、一律にシフトさせたものから一部順番を変更させてもよい。
[ページRAID]
 図22に、ページRAID部20により、ビット線(BL:Bit Line)方向にパリティビットを付加する様子を示す。
 図22に示すように、ページRAID部20は、従来のワード線(WL:Word Line)方向のエラー訂正符号に加えて、ビット線方向についても、各メモリセルのデータについて排他的論理和を演算することにより、パリティビットを算出する。ページRAID部20は、算出したパリティビットをバッファメモリ5に格納する。
 ページRAID部20は、ユーザデータがページ単位でエラー訂正符号化部10に書き込まれる度に、ビット線方向のパリティビットを算出し、算出したパリティビットをバッファメモリ5に格納する。バッファメモリ5は、少なくとも1ページ分の容量を有し、1ページ分のパリティビットを更新して格納する。バッファメモリ5には、書き換え可能回数が多いReRAMを用いることが好ましい。
 ページRAID部20は、ユーザデータの書き込みが完了すると、バッファメモリ5に格納しているパリティビットを書き込みが完了したユーザデータの後のページに書き込む。パリティビットは、最後のページ(一番ページ番号の大きいページ)に書き込まれる場合もあるが、最後のページに限るものではなく、最後から2番目のページやその他のページに書き込まれる場合もある。また、パリティビットの書き込みは1ページに限るものではなく、複数のページにパリティビットを書き込んでもよい。
 ページRAID部20は、ユーザデータの書き込みを完了するまでに、バッファメモリ5を、最大で(ページ数-1)回更新する。ここで、ページ数とは、ブロック内におけるページの数である。図22に示す例においては、1つのビット線にメモリセルが128個あり、それぞれのメモリセルが2ページずつのページを有するため、ページ数は256である。
 NANDブロックが4k回書き換え可能である場合、バッファメモリ5は、4kラ255≒106回程度の書き換えが可能であることを要求されるが、バッファメモリ5にReRAMを採用すれば、ReRAMは書き換え可能回数が多いため対応可能である。
 また、ページRAID部20は、頻繁にバッファメモリ5への書き込みをするため、書き込みアクセス時間の観点から、書き込み速度が速いことが好ましい。この点からも、バッファメモリ5にReRAMを採用することが好ましい。
 図23Aは、横軸をバッファメモリ5の許容書き換え回数、縦軸をユーザメモリに対して必要とされるバッファメモリ5の比としたグラフである。図23Aに示すように、ReRAMは、SLC NANDに比べて、書き換え可能回数が約100倍であるので、必要とされるバッファ比が約100分の1である。また、バッファメモリ5にReRAMを採用した場合、ユーザメモリに対して必要とされる容量は0.1%以下である。
 図23Bは、横軸をエラー訂正前のBER、縦軸をエラー訂正後のBERとしたグラフである。図23Bに示すように、エラー訂正後のBERとして市場で要求されるレベルは、10-15である。1kバイトあたり40ビットを訂正するという前提で検討すると、ページRAIDを適用することにより、許容できるBERが45%増大する。ここで、許容できるBERとは、エラー訂正後に10-15のBERを達成可能なエラー訂正前のBERである。
[エラーマスキング]
 図24に、NANDフラッシュメモリにおいてデータ保持エラーが発生する様子を示す。データ保持エラーは、フローティングゲートから電子が漏れ出すことなどにより発生する。図24に示す例においては、データの書き込みから100日経過すると、左から3番目および右から3番目のメモリセルにおいて、もともと”0”であったデータが”1”になるというエラーが発生している。一旦エラーが発生した位置においては、エラーが回復することはないため、200日経過後においても左から3番目のメモリセルと右から3番目のメモリセルは、エラーが発生した状態のままである。図24に示す例においては、200日経過後に、さらに、右から2番目のデータも”0”であったデータが”1”になるというエラーが発生している。
 制御装置2は、NANDフラッシュメモリの上記のようなデータ保持エラーの特性を鑑みて、エラー訂正復号を効率的に実行する。エラーマスキングにおいては、制御装置2は、エラー書き込みシーケンスとエラーマスキングシーケンスの2つのシーケンスを実行する。それぞれのシーケンスについて、以下に説明する。
 図25は、エラー書き込みシーケンスのフローチャートである。
 エラー訂正復号部50は、エラー訂正符号化されたデータを読み出す(ステップS201)。エラー訂正復号部50は、読み出したデータに対しエラー訂正復号を実行し、エラー訂正復号後のデータを出力する。この際、エラー訂正復号部50は、どの位置のメモリセルでエラーが起こったかの情報(以下、「エラー位置情報」と称する)を取得する(ステップS202)。
 エラーマスキング部60は、エラー訂正復号部50からエラー位置情報を取得し、取得したエラー位置情報を圧縮する(ステップS203)。エラーマスキング部60が実行する圧縮方法の一例については後述する。なお、エラーマスキング部60は、他の方法でエラー位置情報を取得することもできる。例えば、エラーマスキング部60は、信頼性の高いメモリ(例えば、バッファメモリ5)に、別途、書き込んだデータと、プライマリメモリ3またはミラーメモリ4などから読み出したデータとを比較することによりエラー位置情報を取得することもできる。
 エラーマスキング部60は、圧縮したエラー位置情報をバッファメモリ5に格納する(ステップS204)。
 図26は、エラーマスキングシーケンスのフローチャートである。
 エラーマスキング部60は、バッファメモリ5から圧縮された以前のエラー位置情報を読み出す(ステップS301)。エラーマスキング部60は、圧縮されているエラー位置情報を解凍する(ステップS302)。
 エラー訂正復号部50は、エラー位置情報をエラーマスキング部60から取得し、データ内のエラーを削除する(ステップS303)。エラー訂正復号部50は、エラー訂正復号を実行する(ステップS304)。エラー訂正復号部50は、エラー訂正復号したデータを出力する(ステップS305)。
 制御装置2は、エラー書き込みシーケンスとエラーマスキングシーケンスとを適切なタイミングで実行することにより、エラーマスキングを効果的に実行することができる。例えば、データ書き込み後、所定の時間までのデータ読み出し時においては、エラー書き込みシーケンスを実行し、所定の時間後のデータ読み出し時においては、エラーマスキングシーケンスを実行することとしてもよい。また、制御装置2は、所定の時間後のデータ読み出し時においては、エラー書き込みシーケンスとエラーマスキングシーケンスを両方実行することとしてもよい。
 図27に、エラーマスキング部60がエラー位置情報を圧縮する一例を示す。通常、メモリセルにおいてエラーが発生する確率は小さいため、エラーマスキング部60は、これを利用して効率的にエラー位置情報を圧縮することができる。エラー位置情報は、例えば、エラーのない位置を”0”、エラーの発生している位置を”1”とするテーブルであるが、通常、エラーの発生率は低いため、エラー位置情報は、ほとんどの位置で”0”となり、稀に、”1”となる。
 エラーマスキング部60は、このように特定の情報が連続して続くようなエラー位置情報を、例えばランレングス圧縮(Run Length Encoding)により圧縮することで効率的に圧縮することができる。例えば、BERが1%の場合、ランレングス圧縮によりデータ量を16%に低減することができる。なお、ランレングス圧縮は一例であり、他の圧縮方法を用いてもよい。
 図28に、BERについて、エラーマスキングを適用した場合と、エラーマスキングを適用しない場合とを比較したグラフを示す。図28に示すように、エラーマスキングシーケンスにおいて、エラーマスキングを適用することにより、85℃にしてから200時間経過後の比較でBERが67%改善し、85℃にしてから350時間経過後の比較でBERが55%改善した。
 なお、エラーマスキング部60は、エラー位置情報を圧縮するものとして説明したが、これは必須ではない。エラーマスキング部60は、エラー位置情報を圧縮せずにバッファメモリ5に格納してもよい。
 また、上記説明においては、エラー位置情報がバッファメモリ5に格納されるものとして説明したが、これは一例である。エラー位置情報は、プライマリメモリ3やミラーメモリ4など他のメモリに格納してもよい。
[測定結果]
 本願で説明した逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキングを適用すると、データ保持BERにおいて、許容できるBER(ABER:Acceptable BER)が6.2倍になる。図29に示すように、これは、許容できる書き換え回数が2倍になったこと、および、許容できるデータ保持時間が34倍になったことに相当する。
 また、本願で説明した逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキングを適用すると、書き込みBERにおいて、許容できるBERが32倍になる。図30に示すように、これは、許容できる書き換え回数が4.2倍になったことに相当する。
 図31に、図29および30で説明した数値を表にまとめて示す。
 上述したように、本発明に係る半導体記憶装置は、許容できるBERを改善することにより、信頼性を高め、かつ、1つの階層でSSDを効率的に制御し信頼性を向上させることができる。
 また、本発明に係る半導体記憶装置は、逆ミラーリングを適用し、プライマリメモリ3とミラーメモリ4のうちの、BERが小さいメモリからデータを読み出すことにより、ワーストBERを改善することができる。
 また、本発明に係る半導体記憶装置は、エラー低減を適用し、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合は、NANDフラッシュメモリにおけるエラー方向の非対称性を利用して正しいデータを推定することにより、ワーストBERを改善することができる。
 また、本発明に係る半導体記憶装置は、ページRAIDを適用し、ビット線方向にもパリティビットを付加することにより、誤り訂正能力を向上させることができる。
 また、本発明に係る半導体記憶装置は、エラーマスキングを適用し、以前にデータを読み出した際のエラー位置情報を利用することにより、ワーストBERを改善することができる。
 本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。
 例えば、本発明の実施形態はNANDフラッシュメモリを例に挙げて説明したが、本発明はこれに限るものではなく、同様の特性を示すメモリであれば他のメモリであってもよい。
 また、NANDフラッシュメモリとして、1メモリセルあたり2ビットのMLCでページ番号が0から255のNANDフラッシュメモリを例に挙げて説明したが、本発明はこれに限るものではなく、他の構成のNANDフラッシュメモリであってもよい。
 また、逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキング全てを適用可能な装置構成とし、全てを適用した場合を例として説明してきたが、本発明は、いずれか1つまたは2つ以上を適用可能な装置構成とし、いずれか1つまたは2つ以上を適用する制御としてもよい。この場合、当業者であれば技術常識にしたがって不要なブロックを省略することができる。例えば、ページRAIDのみを適用する場合は、ミラーリングは必須ではないため、ミラーメモリ4は省略することができる。また、エラーマスキングのみを適用する場合も同様に、ミラーリングは必須ではないため、ミラーメモリ4は省略することができる。
 また、本発明は、1つの階層でSSDを制御することができるが、複数の階層で構成される構成に対しても適用可能である。
  1 ホスト装置
  2 制御装置
  3 プライマリメモリ
  4 ミラーメモリ
  5 バッファメモリ
 10 エラー訂正符号化部
 20 ページRAID部
 30 逆ミラー部
 31 入力部
 32 プライマリ出力部
 33 変換部
 34 ミラー出力部
 40 エラー低減部
 41 プライマリ入力部
 42 ミラー入力部
 43 ビット再反転部
 44 判定部
 50 エラー訂正復号部
 60 エラーマスキング部
 70 シフトミラー部
 71 入力部
 72 プライマリ出力部
 73 シフト出力部

Claims (9)

  1.  プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリと、
     前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納し、前記少なくとも1つのメモリからデータを読み出す制御装置と
    を備える半導体記憶装置。
  2.  請求項1に記載の半導体記憶装置において、前記制御装置は、
     ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、
     ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と、
     前記ページRAID部から受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、
      前記プライマリメモリには受け取った前記データをそのまま格納し、
      前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と、
     前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、
      前記プライマリメモリからデータを読み出して第1のデータとし、
      前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、
      前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、
      前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と、
     前記エラー低減部から受け取ったデータをエラー訂正復号するエラー訂正復号部と、
     前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、
      前記エラー位置情報を、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリに格納し、
      前記エラー訂正復号部がデータをエラー訂正復号する際に、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリから前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部と
    を備える半導体記憶装置。
  3.  プライマリメモリと、
     前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
     受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する制御装置であって、
      前記プライマリメモリには受け取った前記データをそのまま格納し、
      前記ミラーメモリには、受け取った前記データを格納するページを所定の規則に基づいて制御して、前記データを格納する制御装置と
    を備える半導体記憶装置。
  4.  プライマリメモリと、
     前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
     受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、
      前記プライマリメモリには受け取った前記データをそのまま格納し、
      前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と
    を備える半導体記憶装置。
  5.  プライマリメモリと、
     前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
     受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納するシフトミラー部であって、
      前記プライマリメモリには受け取った前記データをそのまま格納し、
      前記ミラーメモリには、受け取った前記データを格納するページをシフトさせて格納するシフトミラー部と
    を備える半導体記憶装置。
  6.  プライマリメモリと、
     前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
     前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、
      前記プライマリメモリからデータを読み出して第1のデータとし、
      前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、
      前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、
      前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と
    を備える半導体記憶装置。
  7.  バッファメモリと、
     ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、
     ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と
    を備える半導体記憶装置。
  8.  受け取ったデータをエラー訂正復号するエラー訂正復号部と、
     前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、
      前記エラー位置情報をメモリに格納し、
      前記エラー訂正復号部がデータをエラー訂正復号する際に、前記メモリから以前の前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備える半導体記憶装置。
  9.  プライマリメモリと、当該プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリを備える半導体記憶装置の制御方法であって、
     前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納する格納ステップと、
     前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリからデータを読み出す読み出しステップと
    を含む半導体記憶装置の制御方法。
PCT/JP2013/006852 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法 WO2014083811A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/648,022 US9684464B2 (en) 2012-11-30 2013-11-21 Semiconductor storage device and control method for same
KR1020157014282A KR101700057B1 (ko) 2012-11-30 2013-11-21 반도체 기억 장치 및 그 제어 방법
CN201380071951.1A CN104969202B (zh) 2012-11-30 2013-11-21 半导体存储装置及其控制方法
JP2014549804A JP6327714B2 (ja) 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-263033 2012-11-30
JP2012263033 2012-11-30

Publications (1)

Publication Number Publication Date
WO2014083811A1 true WO2014083811A1 (ja) 2014-06-05

Family

ID=50827472

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/006852 WO2014083811A1 (ja) 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法

Country Status (5)

Country Link
US (1) US9684464B2 (ja)
JP (1) JP6327714B2 (ja)
KR (1) KR101700057B1 (ja)
CN (1) CN104969202B (ja)
WO (1) WO2014083811A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2541299A (en) * 2015-08-11 2017-02-15 HGST Netherlands BV Storing parity data separate from protected data technical field
JP2017182345A (ja) * 2016-03-29 2017-10-05 ラピスセミコンダクタ株式会社 半導体装置、電池監視システム、及びデータ読み出し方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529672B2 (en) * 2014-09-25 2016-12-27 Everspin Technologies Inc. ECC word configuration for system-level ECC compatibility
US10567006B2 (en) * 2016-08-05 2020-02-18 Sandisk Technologies Llc Data relocation
US10691533B2 (en) * 2017-12-12 2020-06-23 Micron Technology, Inc. Error correction code scrub scheme
US10789126B2 (en) 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection
KR20240137688A (ko) * 2022-11-21 2024-09-20 양쯔 메모리 테크놀로지스 씨오., 엘티디. 메모리 시스템 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6063651A (ja) * 1983-09-17 1985-04-12 Nippon Telegr & Teleph Corp <Ntt> 記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JPH07281961A (ja) * 1994-04-08 1995-10-27 N T T Data Tsushin Kk メモリ故障検出装置及び計算機
JP2002244932A (ja) * 2001-02-15 2002-08-30 Ricoh Co Ltd 制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61272851A (ja) * 1985-05-28 1986-12-03 Mitsubishi Electric Corp 記憶装置
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
JPH0663651A (ja) * 1992-08-19 1994-03-08 Kaidate Sangyo Kk パイプ用端部加工方法
US6330186B2 (en) * 1996-02-19 2001-12-11 Citizen Watch Co, Ltd. Non-volatile semiconductor memory device having electrically programable memory matrix array
JP4543317B2 (ja) * 2004-12-07 2010-09-15 株式会社デンソー 不揮発性メモリのデータ制御方法
US8046527B2 (en) * 2007-02-22 2011-10-25 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム
US9021188B1 (en) * 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6063651A (ja) * 1983-09-17 1985-04-12 Nippon Telegr & Teleph Corp <Ntt> 記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JPH07281961A (ja) * 1994-04-08 1995-10-27 N T T Data Tsushin Kk メモリ故障検出装置及び計算機
JP2002244932A (ja) * 2001-02-15 2002-08-30 Ricoh Co Ltd 制御装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2541299A (en) * 2015-08-11 2017-02-15 HGST Netherlands BV Storing parity data separate from protected data technical field
AU2016213809B2 (en) * 2015-08-11 2017-11-23 SanDisk Technologies, Inc. Storing parity data separate from protected data
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
GB2541299B (en) * 2015-08-11 2020-02-05 Western Digital Tech Inc Storing parity data separate from protected data
JP2017182345A (ja) * 2016-03-29 2017-10-05 ラピスセミコンダクタ株式会社 半導体装置、電池監視システム、及びデータ読み出し方法

Also Published As

Publication number Publication date
US9684464B2 (en) 2017-06-20
CN104969202A (zh) 2015-10-07
JPWO2014083811A1 (ja) 2017-01-05
CN104969202B (zh) 2018-04-03
US20150309744A1 (en) 2015-10-29
JP6327714B2 (ja) 2018-05-23
KR20150079917A (ko) 2015-07-08
KR101700057B1 (ko) 2017-01-26

Similar Documents

Publication Publication Date Title
JP6327714B2 (ja) 半導体記憶装置およびその制御方法
US10459794B2 (en) Memory systems having extended product lifetime and methods of operating the same
US9164830B2 (en) Methods and devices to increase memory device data reliability
KR102407659B1 (ko) 메모리 내 데이터 복원 작업의 수행
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US9870830B1 (en) Optimal multilevel sensing for reading data from a storage medium
WO2018192488A1 (zh) 一种nand闪存设备的数据处理方法及装置
US20240086282A1 (en) Multi-layer code rate architecture for copyback between partitions with different code rates
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
US12072762B2 (en) Error-handling management during copyback operations in memory devices
US20230082008A1 (en) Parity protection in non-volatile memory
WO2021196620A1 (zh) 读写方法及存储器装置
US11507304B1 (en) Diagonal page mapping in memory systems
US11556261B2 (en) Memory stripe coding management
US11137944B1 (en) Combined QLC programming method
US10922025B2 (en) Nonvolatile memory bad row management
US11994947B2 (en) Multi-layer code rate architecture for special event protection with reduced performance penalty
WO2021196623A1 (zh) 读写方法及存储器装置
WO2021196619A1 (zh) 读写方法及存储器装置
US12062401B2 (en) Performing block-level media management operations for block stripes in a memory device
WO2021196621A1 (zh) 读写方法及存储器装置
US12007837B2 (en) Redundancy metadata schemes for rain protection of large codewords
WO2021196662A1 (zh) 读写方法及存储器装置
KR20220059903A (ko) Qlc 데이터 프로그래밍

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

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2014549804

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14648022

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20157014282

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13857929

Country of ref document: EP

Kind code of ref document: A1