WO2014083811A1 - 半導体記憶装置およびその制御方法 - Google Patents
半導体記憶装置およびその制御方法 Download PDFInfo
- 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
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims description 29
- 230000015654 memory Effects 0.000 claims abstract description 385
- 238000012937 correction Methods 0.000 claims description 81
- 230000009467 reduction Effects 0.000 claims description 51
- 230000000873 masking effect Effects 0.000 claims description 44
- 230000014759 maintenance of location Effects 0.000 description 26
- 238000005259 measurement Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, 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
Description
図1は、本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示すように、半導体記憶装置は、ホスト装置1、制御装置2、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5を備える。
図2は、本発明の一実施形態に係る逆ミラー部30の概略構成を示す図である。図2に示すように、逆ミラー部30は、入力部31、プライマリ出力部32、変換部33およびミラー出力部34を備える。
図9は、本発明の一実施形態に係るエラー低減部40の概略構成を示す図である。図9に示すように、エラー低減部40は、プライマリ入力部41、ミラー入力部42、ビット再反転部43および判定部44を備える。
図13に、書き込みエラー主因条件において、書き込みBERを、通常のミラーリングを採用する従来技術の場合と、上記の逆ミラーリングおよびエラー低減を適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングおよびエラー低減を適用した測定結果を示す。図13に示すように、逆ミラーリングおよびエラー低減を適用することにより、ワーストBERが91%改善した。
上述した「逆ミラーリング」の代わりに、「シフトミラーリング」を採用する実施形態を以下に説明する。図16は、シフトミラーリングを採用した実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示した「逆ミラーリング」を採用する半導体記憶装置とは、制御装置2が逆ミラー部30の代わりにシフトミラー部70を備える点、および、シフトミラー部70がバッファメモリ5に接続されていない点で異なる。
図22に、ページRAID部20により、ビット線(BL:Bit Line)方向にパリティビットを付加する様子を示す。
図24に、NANDフラッシュメモリにおいてデータ保持エラーが発生する様子を示す。データ保持エラーは、フローティングゲートから電子が漏れ出すことなどにより発生する。図24に示す例においては、データの書き込みから100日経過すると、左から3番目および右から3番目のメモリセルにおいて、もともと”0”であったデータが”1”になるというエラーが発生している。一旦エラーが発生した位置においては、エラーが回復することはないため、200日経過後においても左から3番目のメモリセルと右から3番目のメモリセルは、エラーが発生した状態のままである。図24に示す例においては、200日経過後に、さらに、右から2番目のデータも”0”であったデータが”1”になるというエラーが発生している。
本願で説明した逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキングを適用すると、データ保持BERにおいて、許容できるBER(ABER:Acceptable BER)が6.2倍になる。図29に示すように、これは、許容できる書き換え回数が2倍になったこと、および、許容できるデータ保持時間が34倍になったことに相当する。
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に記載の半導体記憶装置において、前記制御装置は、
ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、
ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページ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つのメモリからデータを読み出す読み出しステップと
を含む半導体記憶装置の制御方法。
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)
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)
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)
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)
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 |
-
2013
- 2013-11-21 CN CN201380071951.1A patent/CN104969202B/zh not_active Expired - Fee Related
- 2013-11-21 WO PCT/JP2013/006852 patent/WO2014083811A1/ja active Application Filing
- 2013-11-21 KR KR1020157014282A patent/KR101700057B1/ko active IP Right Grant
- 2013-11-21 US US14/648,022 patent/US9684464B2/en not_active Expired - Fee Related
- 2013-11-21 JP JP2014549804A patent/JP6327714B2/ja not_active Expired - Fee Related
Patent Citations (4)
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)
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 |