[go: up one dir, main page]

WO2010067847A1 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
WO2010067847A1
WO2010067847A1 PCT/JP2009/070702 JP2009070702W WO2010067847A1 WO 2010067847 A1 WO2010067847 A1 WO 2010067847A1 JP 2009070702 W JP2009070702 W JP 2009070702W WO 2010067847 A1 WO2010067847 A1 WO 2010067847A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
redundant
bits
bit
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2009/070702
Other languages
English (en)
French (fr)
Inventor
昌也 樽家
達徳 金井
裕 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of WO2010067847A1 publication Critical patent/WO2010067847A1/ja
Priority to US13/157,396 priority Critical patent/US9105358B2/en
Anticipated expiration legal-status Critical
Priority to US14/789,090 priority patent/US9547551B2/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Definitions

  • the present invention relates to a memory system.
  • each memory cell (1-bit storage element)
  • the probability (error rate) that the content of the memory cell changes to a content different from the content that should be stored in the past increases due to the greater influence from disturbances such as electromagnetic waves.
  • the memory cell can be either in a low resistance state or a high resistance state.
  • whether the logical value is 0 or 1 (or 1 or 0) is determined depending on whether the resistance value of the memory cell is smaller or larger than the threshold value.
  • the resistance value cannot be directly measured at the time of reading. Therefore, it is possible to measure the current value by applying a constant voltage to the memory cell, or by measuring the voltage value by passing a constant current. Estimate the value and determine the logical value.
  • the same operation is performed for writing and reading, and the reading is performed with an intensity that does not rewrite the contents of the memory.
  • a current is passed in the same direction as when writing 0, and whether it is 0 or 1 is determined based on the resistance value at that time.
  • read disturb is affected by variations in the characteristics of memory cells, and is a major factor in increasing the error rate in MRAM.
  • read disturb probability increases, there is a problem that the error bits cannot be relieved by the conventional error correction code.
  • the number of data “1” in the write data is counted, and if the number of data “1” is more than half the number of bits of the write data, the write data is inverted.
  • a nonvolatile semiconductor memory device has been proposed in which drain disturbance is reduced by writing the written data in a normal memory unit and writing information indicating that the data has been inverted in an auxiliary word memory unit (see, for example, Patent Document 1).
  • the data is read from the auxiliary word memory unit, and it is determined whether or not the data is inverted at the time of writing. If the data is inverted, the data read from the normal memory unit is inverted and output.
  • An object of the present invention is to provide a memory system that suppresses an increase in access time and reduces a read disturb probability.
  • a memory system includes a code processing circuit that performs redundant code processing of data to be written, and generates data in which the number of bits taking a predetermined value is less than half of the total number of bits, and the code processing And a memory in which the data generated by the circuit is written.
  • the increase in access time can be suppressed and the read disturb probability can be reduced.
  • 1 is a schematic configuration diagram of a memory system according to a first embodiment of the present invention. It is a figure which shows an example of a process of a redundant encoding circuit. 3 is a logical expression showing an example of redundant code processing. It is a circuit diagram which shows an example of a redundant encoding circuit. It is a mathematical formula showing an example of arithmetic processing for redundant processing data. It is a figure which shows an example of a process of a decoding circuit. It is a logical formula which shows an example of a decoding process. It is a circuit diagram which shows an example of a decoding circuit. It is a schematic block diagram of the code processing circuit by a modification.
  • FIG. 1 shows a schematic configuration of a memory system according to a first embodiment of the present invention.
  • the memory system includes a code processing circuit 100, a decoding circuit 110, a memory 120, and a memory controller 130.
  • the code processing circuit 100 includes a redundant coding circuit 101, a count unit 102, a selector 103, and a calculation unit 104.
  • the redundant encoding circuit 101 is given the data Din to be written to the n-bit (n is an integer of 1 or more) memory 120, performs redundant encoding processing, converts it into n + 1-bit data CDin, and outputs it.
  • the redundant code process will be described later.
  • the selector 103 is provided with n + 1 bits 11... 1 and 00... 0, and selects and outputs either one based on the selection signal Sel output from the count unit 102.
  • the counting unit 102 counts the number of bits having a value of 1 in the data CDin generated by the redundancy encoding circuit 101, and generates and outputs a selection signal Sel based on the count number. When the count number is greater than (n + 1) / 2, the count unit 102 outputs a selection signal Sel that allows the selector 103 to select 11. Further, when the count number is (n + 1) / 2 or less, the count unit 102 outputs a selection signal Sel so that the selector 103 selects 00.
  • the calculation unit 104 calculates the X + 1 of the n + 1-bit data CDin generated by the redundancy encoding circuit 101 and the n + 1-bit 11... 1 or 00. , N + 1 bit data RDin is generated and output.
  • the memory 120 is a non-volatile memory that can be accessed randomly, and is supplied with a multi-bit address signal Addr that specifies the address of the memory to be written or read.
  • the memory controller 130 receives the write signal Write indicating the write timing and the data RDin generated by the code processing circuit 100 (arithmetic unit 104), and writes the write signal Write to the address specified by the address signal Addr of the memory 120. Data RDin is written at a timing based on
  • the memory 120 is, for example, an MRAM.
  • the decoding circuit 110 is supplied with n + 1-bit data RDout read from the memory 120, performs a decoding process, converts the data into n-bit data Dout, and outputs the data.
  • the redundancy coding circuit 101 is provided with 8-bit data d 0 , d 1 , d 2 , d 3 , d 4 , d 5 , d 6 , d 7 and performs redundancy coding processing.
  • 9-bit data x ′ 0 , x ′ 1 , x ′ 2 , x ′ 3 , x ′ 4 , x ′ 5 , x ′ 6 , x ′ 7 , x ′ 8 are output.
  • the redundant code processing can be expressed by a logical expression as shown in FIG. 3, and the redundant code circuit 101 can be constituted by a logical circuit having XOR elements 11 to 18 as shown in FIG. 0 is output as bit x ′ 0 of the data to be output.
  • XOR element 11 is given 0 and bit d 0 , and its output is bit x ′ 1 .
  • the XOR element 12 is supplied with the output of the XOR element 11 and the bit d 1, and its output becomes the bit x ′ 2 .
  • the output of the XOR element k-1 and the bit d k-11 are given to the XOR element k (13 ⁇ k ⁇ 18), and the output becomes the bit x ′ k ⁇ 10 .
  • the processing by the count unit 102, the selector 103, and the calculation unit 104 can be expressed by a logical expression as shown in FIG. 9-bit data x ′ 0 , x ′ 1 , x ′ 2 , x ′ 3 , x ′ 4 , x ′ 5 , x ′ 6 , x ′ 7 , x ′ 8 , the number of bits having a value of 1 is 4 If larger, the XOR between each of x ′ 0 , x ′ 1 , x ′ 2 , x ′ 3 , x ′ 4 , x ′ 5 , x ′ 6 , x ′ 7 , x ′ 8 and 1 is calculated, 9-bit data x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 are output.
  • each bit is inverted and output, and the bit having a value of 1 is 4 or less. If so, it is output as is.
  • the decoding circuit 110 is provided with 9-bit data x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 read from the memory 120. Then, the decoding process is performed, and 8-bit data d 0 , d 1 , d 2 , d 3 , d 4 , d 5 , d 6 , and d 7 are output.
  • the decoding process can be expressed by a logical expression as shown in FIG. 7, and the decoding circuit 110 can be constituted by a logical circuit having XOR elements 21 to 28 as shown in FIG.
  • the XOR element 21 is given a bit x 0 and x 1, its output is the bit d 0.
  • bits x j-21 and x j-20 are given to the XOR element j (22 ⁇ j ⁇ 28), and the output thereof is the bit d j-21 .
  • redundant code processing is performed on 8-bit data d 0 , d 1 , d 2 , d 3 , d 4 , d 5 , d 6 , and d 7 .
  • the selector 103 selects 00... 0, 11... 1, the data obtained by decoding the output data of the code processing circuit 100 by the decoding circuit 110 is the same as the input data of the code processing circuit 100. Will be equal.
  • the code processing circuit 100 performs redundancy coding processing on n-bit input data to n + 1-bit data, and inverts the value of each bit when the number of bits having a value of 1 is larger than (n + 1) / 2 among n + 1 bits. Is output. That is, the output data RDin of the code processing circuit 100 written in the memory 120 is data with a value of 1 having less than half of the total number of bits and a lot of 0s.
  • the direction in which current flows when reading is fixed at the time of design depending on the characteristics of the device. For example, if the current is designed to flow in the same direction as when writing 0 when reading, read disturb Is limited to the case where 1 should have been recorded as 0.
  • the data CDin in which the input data Din is subjected to redundancy code processing in the code processing circuit 100, when the number of bits having a value of 1 is larger than half of the total number of bits, the data CDin is inverted and stored in the memory 120. Write. Accordingly, data with many zeros is written in the memory 120, and the number of bits subject to read disturb is reduced, so that the read disturb probability can be reduced.
  • the decoding circuit 110 decodes the data read from the memory 120 regardless of whether the data RDin written in the memory 120 is an inversion of the data CDin that has been subjected to the redundancy coding process. Output data Dout equal to the input data Din is obtained. Therefore, since it is not necessary to confirm whether or not the data written in the memory 120 is inverted, the memory access time at the time of reading can be shortened compared with the case where such confirmation is necessary.
  • the code processing circuit 100 in the first embodiment may be configured as shown in FIG.
  • the code processing circuit 100 includes a redundant code circuit 101, an inverter 141, a determiner 142, and a selector 143.
  • the inverter 141 inverts and outputs each bit of the n + 1-bit output data CDin of the redundant encoding circuit 101.
  • the determiner 142 counts the number of bits having a value of 1 included in the output data CDin of the redundancy coding circuit 101 and outputs a selection signal to the selector 143 based on the counted number. For example, when the count number is greater than (n + 1) / 2, the determiner 142 outputs a selection signal such that the selector 143 selects the output of the inverter 141. As a result, the number of bits having a value of 1 at the output of the inverter 141 becomes (n + 1) / 2 or less.
  • the determiner 142 may count the number of bits having a value of 0 and output a selection signal based on a value obtained by subtracting the count from n + 1.
  • the code processing circuit 100 outputs data having a large number of bits having a value of 0, and the read disturb probability of the memory 120 can be reduced.
  • the memory 120 is designed to flow a current in the same direction as when writing 0 when reading, and the read disturb should be recorded as 1, the code processing is performed.
  • the circuit 100 inverts and outputs data so that 0 increases.
  • the code processing circuit 100 has a value of 1. Data is output so that the number of bits of 1 increases.
  • the count unit 102 counts the number of bits having a value of 0 in the data CDin output from the redundancy coding circuit 101. If the count number is greater than (n + 1) / 2, the selector 103 is set to 11. A selection signal Sel for selecting 1 is output.
  • FIG. 10 shows a schematic configuration of a memory system according to a second embodiment of the present invention.
  • the memory system includes a code processing circuit 200, a decoding circuit 210, and a memory 220. It is assumed that a memory controller (equivalent to the memory controller 130 in the first embodiment) that writes data to the memory 220 is included in the memory 220.
  • the code processing circuit 200 has a deflection code processing table, converts n-bit input data Din into n + m-bit (m is an integer of 2 or more) data RDin with reference to the deflection code processing table, and a memory 220. Output to.
  • the deflection code processing table is constructed so that the appearance probability of the value to be read disturbed in the memory 220 is low.
  • the decoding circuit 210 converts the n + m-bit data RDout read from the memory 220 into n-bit data Dout with reference to a decoding processing table whose input / output is opposite to that of the deflection code processing table, and outputs the data Dout. .
  • FIG. 11 shows an example of a deflection code processing table when 4 bits of input data are encoded into 6 bits.
  • This deflection code processing table is used when read disturb occurs in the memory 220, which should have been recorded as 1, and is constructed so that the appearance probability of 1 is low.
  • this deflection code processing table can reduce the read disturb probability by 4% compared to the case of performing redundant encoding to 5 bits. .
  • redundancy of 2 bits or more is performed so that the number of bits subject to read disturb is reduced, and writing to the memory can further reduce the read disturb probability.
  • the decoding circuit 210 outputs the data read from the memory 220 back to the original data using the decoding processing table, there is no need to confirm whether the data written in the memory 220 is inverted. The increase in memory access time can be suppressed.
  • FIG. 12 shows a schematic configuration of a memory system according to a third embodiment of the present invention.
  • the memory system includes a code processing circuit 300, a decoding circuit 310, and a memory 320.
  • the code processing circuit 300 includes redundant code circuits 301 and 302 and a deflection selector 303. It is assumed that a memory controller that writes data to the memory 320 (equivalent to the memory controller 130 in the first embodiment) is included in the memory 320.
  • Redundant encoding circuits 301 and 302 scramble n-bit input data Din using 1-bit seed data s different from each other, and make redundant into n + 1-bit data holding information on seed data s.
  • the redundant code circuit 301 is given 0 as seed data s
  • the redundant code circuit 302 is given 1 as seed data s.
  • the output of the redundant encoding circuit 301 and the output of the redundant encoding circuit 302 have a relationship in which the value of each bit is inverted.
  • the deflection selector 303 includes a determination unit 304 and a selector 305.
  • the determination unit 304 monitors the output data of the redundant encoding circuit 301, determines which of the output data of the redundant encoding circuits 301 and 302 has fewer bits subject to read disturb of the memory 320, and determines the data.
  • a selection signal is output to the selector 305 so as to select.
  • the deflection selector 303 selects one of the output data of the redundancy encoding circuits 301 and 302 that has fewer bits subject to read disturb of the memory 320 and outputs the selected data to the memory 320.
  • Decoding circuit 310 decodes n + 1-bit data RDout read from memory 320. At this time, the information of the seed data s is also decoded, but the decoding circuit 310 discards the seed data s and outputs n-bit data Dout.
  • the bit x 0 of the 9-bit output data has the same value as the seed data s.
  • the output of the redundant encoding circuit 301 is 001000010
  • the output of the redundant encoding circuit 302 is 110111101.
  • the seed data s may be 2 bits or more instead of 1 bit.
  • the seed data is p bits (p is an integer of 2 or more)
  • 2 p redundant code circuits are provided, and different seed data is given to each.
  • FIG. 14 shows a configuration example of the memory system when the seed data s is 2 bits.
  • the code processing circuit 300 includes redundant code circuits 331 to 334 and a deflection selector 335. Redundant encoding circuits 331 to 334 are given 00, 01, 10 and 11 as seed data s, respectively, and scramble the n-bit input data Din to make it redundant into n + 2 bit data holding information on seed data s. To do.
  • the deflection selector 335 selects the output data of the redundancy encoding circuits 301 to 304 that has the least number of bits subject to read disturb of the memory 320 and outputs the selected data to the memory 320.
  • the decoding circuit 310 reads n + 2 bits of data from the memory 320, performs a decoding process, discards the 2 bits of seed data, and outputs n bits of data Dout.
  • the decoding circuit 310 since the decoding circuit 310 only decodes the data read from the memory 320 and discards and outputs the seed data, it is possible to suppress an increase in access time.
  • FIG. 15 shows a schematic configuration of a memory system according to a fourth embodiment of the present invention.
  • the memory system includes a code processing circuit 400, a decoding circuit 410, and a memory 420.
  • the code processing circuit 400 includes error correction encoding units 401 and 402 and a deflection selector 403. It is assumed that a memory controller that writes data to the memory 420 (equivalent to the memory controller 130 in the first embodiment) is included in the memory 420.
  • the error correction encoding units 401 and 402 perform error correction encoding processing on data obtained by adding the u-bit data inversion bit r to the n-bit input data Din, and output t-bit data.
  • n, u, and t are integers of 1 or more.
  • the value of the data inversion bit r is different between the error correction encoding unit 401 and the error correction encoding unit 402.
  • the output data of the error correction encoding unit 401 and the output data of the error correction encoding unit 402 have a relationship in which all bits or a large number of bits are inverted.
  • the deflection selector 403 selects, from the output data of the error correction coding units 401 and 402, the one with fewer bits subject to read disturb of the memory 420 and outputs the selected data to the memory 420.
  • the decoding circuit 410 reads t-bit data from the memory 420, performs decoding and error correction processing, generates n + u-bit data, and outputs n-bit data Dout excluding the u-bit data inversion bit r.
  • the error correction encoding units 401 and 402 use a Hamming code having a generation matrix as shown in FIG. 16, and an error correction code as shown in FIG. Hamming encoding processing is performed as the conversion processing. At this time, the output data is 12 bits.
  • the eighth row of the generator matrix corresponding to the data inversion bit r is all 1. Therefore, the output data when the data inversion bit r is set to 0 is obtained by inverting each bit of the output data when r is set to 1. Therefore, the output data of the error correction encoding unit 401 is obtained by inverting each bit of the output data of the error correction encoding unit 402.
  • the deflection selector 403 selects, from the output data of the error correction coding units 401 and 402, the one having fewer bits subject to read disturb of the memory 420 and outputs the selected data to the memory 420.
  • the deflection selector 403 can be configured similarly to the deflection selector 303 shown in FIG.
  • the error correction coding unit 402 may not be provided in the code processing circuit 400, but an inverter circuit 404 that inverts the output of the error correction coding unit 401 may be provided. This is because the output of the inverter circuit 404 is the same as the output of the error correction coding unit 402.
  • the deflection selector 403 may select the output data of the error correction encoding unit 401 and the inverter circuit 404 that has fewer bits subject to read disturb of the memory 420 and output the selected data to the memory 420.
  • the decoding circuit 410 reads 12-bit data from the memory 420, performs decoding and error correction using a check matrix as shown in FIG. 19, discards the data inversion bit r, and restores the original 7-bit data. ,Output.
  • the error correction encoding units 401 and 402 use a Hamming code having a generation matrix as shown in FIG. 20 to perform a Hamming encoding process as an error correction encoding process. I do. At this time, the output data is 13 bits.
  • the output data when the data inversion bit r is 0 is not an inverted version of each bit of the output data when r is 1. Therefore, the output data of the error correction encoding unit 401 is not an inverted version of each bit of the output data of the error correction encoding unit 402.
  • the deflection selector 403 since 12 bits of the 13-bit output data are inverted, the deflection selector 403 has a smaller number of bits subject to read disturb of the memory 420 among the output data of the error correction coding units 401 and 402. By selecting and outputting to memory 420, it is possible to reduce the read disturb probability.
  • the deflection selector 403 can be configured as shown in FIG.
  • the determination unit 405 monitors the output data of the error correction encoding units 401 and 402 and outputs a selection signal to the selector 406 so as to select the one having fewer bits subject to read disturb in the memory 420.
  • the code processing circuit 400 can be configured as shown in FIG.
  • the inversion circuit 407 inverts and outputs only the bit to be inverted by the data inversion bit r.
  • the determination unit 405 of the deflection selector 403 has only the bit to be read disturbed among the generation data of the error correction encoding unit 401 and the generation data of the inversion circuit 407 only for the bit inverted by the data inversion bit r. Determine if there are few. With this configuration, the error correction encoding unit 402 can be omitted.
  • the decoding circuit since the decoding circuit only performs decoding and error correction of the data read from the memory and discards and outputs the data inversion bit, an increase in time required for memory access can be suppressed.
  • FIG. 23 shows a schematic configuration of a memory system according to a fifth embodiment of the present invention.
  • the memory system includes a code processing circuit 500, a decoding circuit 510, a memory 520, and a comparator 530. It is assumed that a memory controller that writes data to the memory 520 (equivalent to the memory controller 130 in the first embodiment) is included in the memory 520.
  • the code processing circuit 500 includes a redundant data generation circuit 501 and a deflection selector 504.
  • the redundant data generation circuit 501 is provided with n-bit (n is an integer of 1 or more) input data Din, and outputs n + 1-bit redundant data X0 and X1 which are different from each other.
  • the redundant data generation circuit 501 includes redundant encoding circuits 502 and 503.
  • the redundant code circuit 502 is given 0 as the input data Din and 1-bit seed data s, performs redundant code processing, and outputs n + 1-bit redundant data X0.
  • the redundancy code circuit 503 is given 1 as the input data Din and 1-bit seed data s, and performs redundancy code processing to output n + 1-bit redundancy data X1.
  • the redundant encoding circuits 502 and 503 have a logic circuit configuration as shown in FIG.
  • the deflection selector 504 selects one of the redundant data X0 and X1, which has fewer bits subject to read disturb in the memory 520, and outputs the selected data to the memory 520 as write data RDin.
  • the deflection selector 504 is supplied with a write signal Write for instructing the write timing, and outputs a write signal MWwrite to the memory 520 in response to data output to the memory 520.
  • the data RDin output from the deflection selector 504 is written to an address specified by the address signal Addr of the memory 520 based on the write signal MWwrite by a memory controller (not shown).
  • the decoding circuit 510 reads n + 1-bit data RDout from the memory 520, performs a decoding process, discards the information of the seed data s, and outputs n-bit data Dout.
  • the decoding circuit 510 can output the data Din regardless of which of the data X0 and X1 is input.
  • the comparator 530 immediately reads data from the same address after writing to the memory 520, compares the data written to the memory 520 with the data read from the memory 520, and compares the comparison result.
  • the comparison result signal Match shown is output to the deflection selector 504.
  • the comparison result of the comparator 530 may be inconsistent due to the influence of the failed memory cell. For example, when data with a bit value of 1 is written and the memory cell corresponding to this bit is a failed cell that always outputs 0, the value of this bit of the read data changes to 0 and The comparison result of the device 530 is inconsistent.
  • the deflection selector 504 selects one of the redundant data X0 and X1, which has more bits subject to read disturb of the memory 520, and outputs the selected data to the memory 520.
  • Redundant data X0 and X1 have a relationship in which all bits or many bits are inverted. Therefore, when one of the redundant data X0 and X1 is written in the memory 520, and the read data does not match the write data, writing the other of the redundant data X0 and X1 results in the read data being the write data. Expect to match.
  • the redundant encoding circuits 502 and 503 have a logic circuit configuration as shown in FIG. 13 and the input data is 010000011, the redundant data X0 is 001000010 and the redundant data X1 is 110111101.
  • the deflection selector selects the redundant data X0 that is data with less 1 (more 0).
  • the comparison result signal Match output from the comparator 530 indicates a mismatch.
  • the deflection selector selects data other than the redundant data X0, that is, the redundant data X1.
  • the memory cell corresponding to the least significant bit is fixed to 1.
  • the memory 520 holds correct data.
  • the decoding circuit 510 can restore the original value correctly.
  • the faulty memory cell can be remedied by selecting data correctly held in the memory 520.
  • the memory system according to the present embodiment is connected to hardware such as a microprocessor to write and read data.
  • a data writing method using such a memory system will be described with reference to the flowchart shown in FIG.
  • a microprocessor including a processor in a memory controller
  • writes data to the memory will be described as an example, but the same applies to a case where hardware other than the microprocessor writes data.
  • the microprocessor In order to write data to the memory system, the microprocessor outputs an address to be written to the address signal Addr of the memory system and outputs data to be written to the data signal Din of the memory system. Then, the microprocessor changes the output for the write signal Write of the memory system from the logical value 0 to 1, thereby starting the write process.
  • Step S100 An address A to which data is written is given to the memory 520 by the address signal Addr from the microprocessor.
  • n-bit data Din is supplied from the microprocessor to the redundant encoding circuit 1.
  • Step S101 The redundant data generation circuit 501 performs redundant code processing and outputs n + 1-bit redundant data X0 and X1.
  • Step S102 The deflection selector 504 selects one of the redundant data X0 and X1 based on the read disturb target value in the memory 520. The smaller number of bits to be read disturb is selected.
  • Step S103 The deflection selector 504 outputs the data selected in Step S102 to the memory 520 as the write data RDin. Further, when the deflection selector 504 changes the write signal MWwrite to the memory 520 from the logical value 0 to 1 and instructs the memory 520 to write, the data RDin is written to the address A of the memory 520.
  • Step S104 The data RDout is read from the address A of the memory 520.
  • Step S105 The comparator 5 compares the data RDin and the data RDout, and outputs a comparison result signal Match indicating the comparison result. If the comparison result signal Match is true, that is, the data RDin and the data RDout match, it is determined that the data has been correctly written to the memory 520, and the write operation is terminated.
  • step S106 If the comparison result signal Match is false, that is, the data RDin and the data RDout do not match, the process proceeds to step S106.
  • Step S106 The redundant data X0 and X1 which are not selected by the deflection selector 504 in Step S102 are selected and written to the address A of the memory 520.
  • step S105 The timing chart when the comparison results match in step S105 is as shown in FIG. 25, and the timing chart when the comparison results do not match is as shown in FIG.
  • the microprocessor In order to read data from the memory system, the microprocessor outputs the address to be read to the address signal Addr of the memory system, thereby starting the reading process of the memory system.
  • Step S200 The address A is given from the microprocessor by the address signal Addr.
  • Step S201 The n + 1-bit data RDout is read from the address A of the memory 520.
  • Step S202 The data RDout is given to the decoding circuit 520.
  • Step S203 Decoding processing is performed, and n-bit data Dout is output as data at address A in the memory 520.
  • redundant data having a smaller number of bits subject to read disturb of the memory 520 is selected and written, and when data is not correctly written from a comparison result of the comparator 530 due to a failure of a memory cell or the like, By selecting and writing the other redundant data, the failure memory cell is relieved while reducing the read disturb probability.
  • the redundant data generation circuit 501 adds the 1-bit seed data s to the input data and outputs two redundant data X0 and X1, but outputs three or more redundant data. May be.
  • FIG. 28 shows a configuration example in which the redundant data generation circuit 501 adds the 2-bit seed data s and outputs four redundant data X0 to X3.
  • the redundant data generation circuit 501 includes redundant encoding circuits 541 to 544. Redundant encoding circuits 541 to 544 each add 00, 01, 10, and 11 as 2-bit seed data s to n-bit input data Din, and output n + 2-bit redundant data X0 to X3.
  • the redundant code circuits 541 to 544 perform redundant code processing using a redundant code generation matrix as shown in FIG. 29, and output 8-bit redundant data.
  • the deflection selector 504 first selects the redundant data X3 having a value of 1 and the minimum number of bits.
  • the deflection selector 504 After the redundancy data X3 is written in the memory 520, if the value read from the same address by the comparator 530 does not match the redundancy data X3, the deflection selector 504 has the second smallest number of bits having a value of 1. Data X1 is selected. The deflection selector sequentially selects until the comparison results by the comparator 530 match.
  • the deflection selector 504 selects one of the redundant data X0 and X2. May be selected. Thereby, the time required for writing to the memory 520 can be shortened.
  • the deflection selector 504 selects the last redundant data
  • the comparison by the comparator 530 after writing may be omitted in expectation that data can be written correctly.
  • the memory cell according to the present embodiment can reduce the read disturb probability and relieve a defective memory cell.
  • the decoding circuit can obtain the original data by performing a predetermined decoding process on the data read from the memory, regardless of which redundant data is selected by the deflection selector. Increase in time can be suppressed.
  • the first to fifth embodiments focus on the difference in read disturb probability due to 0 and 1 of the memory cell in order to lower the read disturb probability, but the memory cell is limited to having only two states. In other words, the present invention can be applied to all performances whose factors change depending on the storage state of the memory cell.
  • the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying constituent elements without departing from the scope of the invention in the implementation stage.
  • various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
  • constituent elements over different embodiments may be appropriately combined.

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

 メモリシステムは、書き込み対象のデータDinの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータRDinを生成する符号処理回路100と、前記符号処理回路により生成されるデータRDinが書き込まれるメモリ120と、を備える。

Description

メモリシステム
 本発明は、メモリシステムに関するものである。
 高集積度のメモリチップでは、個々のメモリセル(1ビットの記憶素子)を構成する物質のサイズが小さくなることにより、製造時の加工精度に由来する特性のばらつきが大きくなることや、温度や電磁波などの外乱から受ける影響が大きくなることなどによって、メモリセルの内容が従来記憶すべき内容と違う内容に変化してしまう確率(誤り率)が上がっている。
 この誤りへの対策としては、単純に加工精度を上げたり、外乱の影響を低減するようにガードしたりする他に、誤り訂正符号(ECC)を用いて誤りビットを救済する方法が知られている。誤り率に関しては、外乱の他に、メモリのデバイスによる特性として存在する要因もある。
 MRAMやRRAMやReRAMのように、異なる2つの抵抗値を持つことのできるメモリセルを用いる電気的に書き替え可能なメモリでは、メモリセルを低抵抗状態か高抵抗状態のいずれかにすることで、一方を論理値0、もう一方を論理値1に対応させてデータを記憶する。データの読み出し時には、メモリセルの抵抗値が閾値より小さいか大きいか否かで、論理値0か1か(あるいは1か0か)を判断する。
 このようなメモリでは、読み出し時に抵抗値を直接測定することができないため、メモリセルに定電圧を掛けて電流値を測定したり、定電流を流して電圧値を測定したりすることによって、抵抗値を推定し論理値を決定する。
 例えばMRAMでは、書き込みと読み出しとで同様の動作が行われ、読み出しはメモリの内容が書き換わらない程度の強度で行われる。例えば、読み出し時には0を書き込むときと同じ方向に電流を流し、その時の抵抗値によって0か1かの判別を行う。
 この時、1であったメモリの内容が0に書き換わってしまう事がある。これはリードディスターブと呼ばれ、メモリセルの特性ばらつきの影響を受けるものであり、MRAMでの誤り率を上げる大きな要因となっている。このリードディスターブが起こる確率(リードディスターブ確率)が上がると、従来の誤り訂正符号では誤りビットを救済しきれなくなるという問題があった。
 メモリに書き込まれたデータのデータ破壊を防止するものとして、書き込みデータにおけるデータ「1」の数をカウントし、データ「1」の数が書き込みデータのビット数の半分以上の場合は書き込みデータを反転したデータを正規メモリ部に書き込み、反転させたことを示す情報を補助ワードメモリ部に書き込むことで、ドレインディスターブを低減させる不揮発性半導体記憶装置が提案されている(例えば特許文献1参照)。正規メモリ部からのデータ読み出し時は、補助ワードメモリ部からデータを読み出し、書き込み時に反転したか否かを判定し、反転した場合は正規メモリ部から読み出したデータを反転して出力する。
 しかし、データ読み出しの度に補助ワードメモリ部からデータ反転の有無を示す情報を読み出す必要があるため、読み出し処理が煩雑になり、メモリアクセスにかかる時間が長くなるという問題があった。
特開平7-334991号公報
 本発明は、アクセス時間の増加を抑制して、リードディスターブ確率を減少させるメモリシステムを提供することを目的とする。
 本発明の一態様によるメモリシステムは、書き込み対象のデータの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータを生成する符号処理回路と、前記符号処理回路により生成される前記データが書き込まれるメモリと、を備えるものである。
 本発明によれば、アクセス時間の増加を抑制して、リードディスターブ確率を減少させることができる。
本発明の第1の実施形態に係るメモリシステムの概略構成図である。 冗長化符号回路の処理の一例を示す図である。 冗長化符号処理の一例を示す論理式である。 冗長化符号回路の一例を示す回路図である。 冗長化処理データに対する演算処理の一例を示す数式である。 復号回路の処理の一例を示す図である。 復号処理の一例を示す論理式である。 復号回路の一例を示す回路図である。 変形例による符号処理回路の概略構成図である。 本発明の第2の実施形態に係るメモリシステムの概略構成図である。 偏向符号処理テーブルの一例を示す図である。 本発明の第3の実施形態に係るメモリシステムの概略構成図である。 同第3の実施形態に係る冗長化符号回路の一例を示す図である。 変形例によるメモリシステムの概略構成図である。 本発明の第4の実施形態に係るメモリシステムの概略構成図である。 ハミング符号化処理の生成行列の一例を示す図である。 ハミング符号化処理の一例を示す数式である。 変形例によるメモリシステムの概略構成図である。 検査行列の一例を示す図である。 ハミング符号化処理の生成行列の一例を示す図である。 変形例による偏向セレクタの概略構成図である。 変形例による符号処理回路の概略構成図である。 本発明の第5の実施形態に係るメモリシステムの概略構成図である。 同第5の実施形態によるデータ書き込み方法のフローチャートである。 同第5の実施形態によるデータ書き込み方法におけるタイミングチャートの一例である。 同第5の実施形態によるデータ書き込み方法におけるタイミングチャートの一例である。 同第5の実施形態によるデータ読み出し方法のフローチャートである。 変形例によるメモリシステムの概略構成図である。 冗長化符号処理の一例を示す数式である。
 以下、本発明の実施の形態を図面に基づいて説明する。
 (第1の実施形態)図1に本発明の第1の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路100、復号回路110、メモリ120、及びメモリコントローラ130を備える。符号処理回路100は、冗長化符号回路101、カウント部102、セレクタ103、及び演算部104を有する。
 冗長化符号回路101は、nビット(nは1以上の整数)のメモリ120への書き込み対象のデータDinが与えられ、冗長化符号処理を行い、n+1ビットのデータCDinに変換して出力する。冗長化符号処理については後述する。セレクタ103はn+1ビットの11・・・1と00・・・0が与えられ、カウント部102から出力される選択信号Selに基づいていずれか一方を選択して出力する。
 カウント部102は、冗長化符号回路101により生成されるデータCDinのうち、値が1のビット数をカウントし、カウント数に基づいて選択信号Selを生成して出力する。カウント部102は、カウント数が(n+1)/2より大きい場合は、セレクタ103が11・・・1を選択するような選択信号Selを出力する。また、カウント部102は、カウント数が(n+1)/2以下の場合は、セレクタ103が00・・・0を選択するような選択信号Selを出力する。
 演算部104は、冗長化符号化回路101により生成されたn+1ビットのデータCDinと、セレクタ103により選択されたn+1ビットの11・・・1又は00・・・0の各ビットのXORを演算し、n+1ビットのデータRDinを生成し、出力する。
 メモリ120はランダムアクセス可能な不揮発性メモリであり、書き込み又は読み出しを行うメモリの番地を指定する複数ビットのアドレス信号Addrが与えられる。メモリコントローラ130は、書き込みのタイミングを指示する書き込み信号Write及び符号処理回路100(演算部104)により生成されたデータRDinが与えられ、メモリ120のアドレス信号Addrで指定された番地に、書き込み信号Writeに基づくタイミングでデータRDinを書き込む。メモリ120は例えばMRAMである。
 復号回路110はメモリ120から読み出されたn+1ビットのデータRDoutが与えられ、復号処理を行い、nビットのデータDoutに変換して出力する。
 n=8を例として、冗長化符号処理及び復号処理について説明する。図2に示すように、冗長化符号回路101は8ビットのデータd、d、d、d、d、d、d、dが与えられ、冗長化符号処理を行い、9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’を出力する。
 冗長化符号処理は図3に示すような論理式で表すことができ、冗長化符号回路101は図4に示すようなXOR素子11~18を有する論理回路で構成することができる。出力するデータのビットx’として0が出力される。XOR素子11には0とビットdが与えられ、その出力がビットx’となる。
 XOR素子12にはXOR素子11の出力とビットdとが与えられ、その出力がビットx’となる。以下同様に、XOR素子k(13≦k≦18)にはXOR素子k-1の出力とビットdk-11とが与えられ、その出力がビットx’k-10となる。
 カウント部102、セレクタ103、及び演算部104による処理は図5に示すような論理式で表すことができる。9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’において、値が1のビット数が4より大きい場合は、x’、x’、x’、x’、x’、x’、x’、x’、x’の各々と1とのXORを演算し、9ビットのデータx、x、x、x、x、x、x、x、xを出力する。
 9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’において、値が1のビット数が4以下の場合は、x’、x’、x’、x’、x’、x’、x’、x’、x’の各々と0とのXORを演算し、9ビットのデータx、x、x、x、x、x、x、x、xを出力する。
 つまり、冗長化符号回路101から出力される9ビットのデータ中に値が1のビットが4より大きい(5以上)場合は各ビットを反転して出力し、値が1のビットが4以下の場合はそのまま出力する。
 図6に示すように、復号回路110はメモリ120から読み出された9ビットのデータx、x、x、x、x、x、x、x、xが与えられ、復号処理を行い、8ビットのデータd、d、d、d、d、d、d、dを出力する。
 復号処理は図7に示すような論理式で表すことができ、復号回路110は図8に示すようなXOR素子21~28を有する論理回路で構成することができる。XOR素子21にはビットxとxとが与えられ、その出力がビットdとなる。
 以下同様に、XOR素子j(22≦j≦28)にはビットxj-21とxj-20とが与えられ、その出力がビットdj-21となる。
 図3、図7に示す論理式から分かるように、8ビットのデータd、d、d、d、d、d、d、dに対して冗長化符号処理を行って得られる9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’を復号処理すると、元の8ビットのデータd、d、d、d、d、d、d、dに戻すことが出来る。
 また、9ビットのデータx’、x’、x’、x’、x’、x’、x’、x’、x’の各ビットの否定をとって(各ビットを反転して)から復号処理しても、元の8ビットのデータd、d、d、d、d、d、d、dに戻すことが出来る。
 例えば8ビットのデータが01100011であったとする。この値を図4に示す冗長化符号回路に与えると、9ビットのデータ001000010が出力される。この001000010を図8に示す冗長化復号回路に与えると、その出力は01100011となり、元のデータに戻る。
 また、9ビットのデータ001000010の各ビットの否定をとった110111101を図8に示す冗長化復号回路に与えても、その出力は01100011となり、元のデータに戻る。
 従って、セレクタ103が00・・・0、11・・・1のいずれを選択しても、符号処理回路100の出力データを復号回路110が復号処理したデータは、符号処理回路100の入力データと等しいものとなる。
 符号処理回路100はnビットの入力データをn+1ビットのデータに冗長化符号処理し、n+1ビットのうち、値が1のビット数が(n+1)/2より大きい場合は各ビットの値を反転して出力している。つまり、メモリ120に書き込まれる符号処理回路100の出力データRDinは、値が1のビット数が全ビット数の半分以下になり、0が多いデータとなる。
 通常のMRAMでは、読み出し時にどちらの方向に電流を流すかはデバイスの特性によって設計時に固定されるため、例えば読み出し時には0を書き込むときと同じ方向に電流を流すように設計されたとすると、リードディスターブは1と記録したはずが0になるという場合に限られる。
 従って、データをメモリ120に書き込む際に、値が0のビット数が多くなるように書き込むことによって、リードディスターブの対象となるビットが減り、全体としてリードディスターブ確率が減少する。
 本実施形態では、符号処理回路100において入力データDinを冗長化符号処理したデータCDinにおいて、値が1のビット数が全ビット数の半分より大きい場合に、データCDinを反転して、メモリ120に書き込む。従って、メモリ120には、0が多いデータが書き込まれ、リードディスターブの対象となるビットが減るため、リードディスターブ確率が減少させることができる。
 また、メモリ120に書き込んだデータRDinが冗長化符号処理したデータCDinを反転したものか否かに関係なく、復号回路110はメモリ120から読み出したデータを復号処理することで、符号処理回路100の入力データDinと等しい出力データDoutが得られる。従って、メモリ120に書き込んだデータを反転したか否かの確認をする必要がないため、そのような確認が必要な場合と比較して読み出し時のメモリアクセス時間を短縮することができる。
 上記第1の実施形態における符号処理回路100は図9に示すような構成にしてもよい。符号処理回路100は冗長化符号回路101、インバータ141、判定器142、及びセレクタ143を有する。
 インバータ141は、冗長化符号回路101のn+1ビットの出力データCDinの各ビットを反転して出力する。判定器142は、冗長化符号回路101の出力データCDinに含まれる値が1のビット数をカウントし、カウント数に基づいてセレクタ143へ選択信号を出力する。例えば判定器142は、カウント数が(n+1)/2より大きい場合、セレクタ143がインバータ141の出力を選択するような選択信号を出力する。これにより、インバータ141の出力は値が1のビット数が(n+1)/2以下となる。
 判定器142は値が0のビット数をカウントし、n+1からカウント数を減じた値に基づいて選択信号を出力するようにしてもよい。
 このような構成によっても、符号処理回路100からは値が0のビット数が多いデータが出力され、メモリ120のリードディスターブ確率を減少させることができる。
 上記第1の実施形態では、メモリ120が、読み出し時に、0を書き込むときと同じ方向に電流を流すように設計され、リードディスターブは1と記録したはずが0になるものであったため、符号処理回路100は0が多くなるようにデータを反転して出力していた。
 従って、メモリ120が、読み出し時に、1を書き込むときと同じ方向に電流を流すように設計され、リードディスターブは0と記録したはずが1になるものである場合は、符号処理回路100は値が1のビット数が多くなるようにデータを出力する。
 例えば、カウント部102は、冗長化符号回路101から出力されるデータCDinのうち、値が0のビット数をカウントし、カウント数が(n+1)/2より大きい場合は、セレクタ103が11・・・1を選択するような選択信号Selを出力する。
 (第2の実施形態)図10に本発明の第2の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路200、復号回路210、及びメモリ220を備える。メモリ220へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ220内に含まれているものとする。
 符号処理回路200は偏向符号処理テーブルを有しており、nビットの入力データDinを、偏向符号処理テーブルを参照してn+mビット(mは2以上の整数)のデータRDinに変換し、メモリ220へ出力する。ここで、偏向符号処理テーブルは、メモリ220のリードディスターブの対象となる値の出現確率が低くなるように構築する。
 復号回路210は、メモリ220から読み出されたn+mビットのデータRDoutを、偏向符号処理テーブルと入出力が逆になっている復号処理テーブルを参照してnビットのデータDoutに変換し、出力する。
 上記第1の実施形態では1ビットの冗長化を行っていたのに対し、本実施形態では2ビット以上(mビット)の冗長化を行っている。0と1の出現確率が等しい場合、2ビット以上の冗長化を行った方が、1ビットの冗長化を行うより、統計的にリードディスターブ確率を下げることができるためである。
 図11は、4ビットの入力データを6ビットに符号化する場合の偏向符号処理テーブルの一例である。この偏向符号処理テーブルは、メモリ220において、1と記録したはずが0になるリードディスターブが発生する場合のものであり、1の出現確率が低くなるように構築されている。
 16種類の入力データ(0000~1111)の出現確率がすべて等しい場合、この偏向符号処理テーブルを用いることで、5ビットへの冗長符号化を行う場合と比較してリードディスターブ確率を4%低減できる。
 このように偏向符号処理テーブルを用いて、リードディスターブの対象となるビットが少なくなるように2ビット以上の冗長化を行い、メモリへ書き込むことで、リードディスターブ確率をさらに低減できる。
 また、復号回路210は、メモリ220から読み出したデータを、復号処理テーブルを用いて元のデータに戻して出力するため、メモリ220に書き込まれたデータが反転したか否かの確認は必要がなく、メモリアクセス時間の増加を抑制することができる。
 (第3の実施形態)図12に本発明の第3の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路300、復号回路310、及びメモリ320を備える。符号処理回路300は、冗長化符号回路301、302、及び偏向セレクタ303を有する。メモリ320へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ320内に含まれているものとする。
 冗長化符号回路301、302は互いに異なる1ビットの種データsを用いてnビットの入力データDinをスクランブルして、種データsの情報を保持したn+1ビットのデータに冗長化する。冗長化符号回路301は種データsとして0が与えられ、冗長化符号回路302は種データsとして1が与えられる。冗長化符号回路301の出力と、冗長化符号回路302の出力とは、各ビットの値を反転した関係になっている。
 偏向セレクタ303は判定器304及びセレクタ305を有する。判定器304は冗長化符号回路301の出力データを監視し、冗長化符号回路301、302の出力データのうち、どちらがメモリ320のリードディスターブの対象となるビットが少ないかを判定し、そのデータを選択するようにセレクタ305へ選択信号を出力する。
 つまり、偏向セレクタ303は、冗長化符号回路301、302の出力データのうち、メモリ320のリードディスターブの対象となるビットが少ない方を選択して、メモリ320へ出力する。
 復号回路310は、メモリ320から読み出したn+1ビットのデータRDoutを復号する。この時、種データsの情報が併せて復号されるが、復号回路310は種データsを破棄してnビットのデータDoutを出力する。
 n=8とした場合の冗長化符号回路301、302の論理回路構成例を図13に示す。この例では9ビットの出力データのビットxが種データsと同値となる。入力データが01100011であった場合、冗長化符号回路301の出力は001000010となり、冗長化符号回路302の出力は110111101となる。
 ここで、例えばメモリ320のリードディスターブの対象が1である場合、偏向セレクタ303によって001000010が選択されて、メモリ320に書き込まれる。
 この001000010を復号回路310に与えると、その出力は種データが0、本体が01100011となり、元の入力データが得られる。
 種データsは1ビットでなく、2ビット以上でもよい。種データがpビット(pは2以上の整数)の場合、冗長化符号回路を2個設け、それぞれに異なる種データを与える。種データsが2ビットの場合のメモリシステムの構成例を図14に示す。符号処理回路300は冗長化符号回路331~334及び偏向セレクタ335を有する。冗長化符号回路331~334はそれぞれ種データsとして00、01、10、11が与えられ、nビットの入力データDinをスクランブルして、種データsの情報を保持したn+2ビットのデータに冗長化する。
 偏向セレクタ335は、冗長化符号回路301~304の出力データのうち、メモリ320のリードディスターブの対象となるビットが最も少ないものを選択して、メモリ320へ出力する。
 復号回路310は、メモリ320からn+2ビットのデータを読み出し、復号処理を行い、2ビットの種データを破棄してnビットのデータDoutを出力する。
 このように入力データに1ビット以上の種データを付加して冗長化処理を行い、リードディスターブの対象となるビットが最も少ないものを選択してメモリに書き込むことで、リードディスターブ確率を低減することができる。
 また、復号回路310は、メモリ320から読み出したデータを復号し、種データを破棄して出力するだけなので、アクセス時間の増加を抑制することができる。
 (第4の実施形態)図15に本発明の第4の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路400、復号回路410、及びメモリ420を備える。符号処理回路400は、誤り訂正符号化部401、402、及び偏向セレクタ403を有する。メモリ420へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ420内に含まれているものとする。
 誤り訂正符号化部401、402は、nビットの入力データDinにuビットのデータ反転用ビットrを付加したデータに対して誤り訂正符号化処理を行い、tビットのデータを出力する。n、u、tは1以上の整数である。データ反転用ビットrの値は誤り訂正符号化部401と誤り訂正符号化部402とで異なる。
 誤り訂正符号化部401の出力データと、誤り訂正符号化部402の出力データとは、全てのビット又は多数のビットが反転した関係となる。
 偏向セレクタ403は誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力する。
 復号回路410はメモリ420からtビットのデータを読み出し、復号及び誤り訂正処理を行い、n+uビットのデータを生成し、uビットのデータ反転用ビットrを除いたnビットのデータDoutを出力する。
 例えばn=7、データ反転用ビットrが1ビットの時、誤り訂正符号化部401、402は図16に示すような生成行列を持つハミング符号を用いて、図17に示すような誤り訂正符号化処理としてのハミング符号化処理を行う。この時、出力データは12ビットとなる。
 データ反転用ビットrに対応する生成行列の第8行がすべて1になっている。そのため、データ反転用ビットrを0とした場合の出力データは、rを1とした場合の出力データの各ビットを反転したものとなる。従って、誤り訂正符号化部401の出力データは、誤り訂正符号化部402の出力データの各ビットを反転したものとなる。
 偏向セレクタ403は、誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力する。偏向セレクタ403は、図12に示す偏向セレクタ303と同様の構成にすることができる。
 また、図18に示すように、符号処理回路400に誤り訂正符号化部402を設けず、誤り訂正符号化部401の出力を反転するインバータ回路404を設けてもよい。インバータ回路404の出力が、誤り訂正符号化部402の出力と同じになるためである。偏向セレクタ403は、誤り訂正符号化部401、インバータ回路404の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力するようにしてもよい。
 復号回路410は、メモリ420から12ビットのデータを読み出し、図19に示すような検査行列を用いて復号及び誤り訂正を行い、データ反転用ビットrを破棄し、元の7ビットのデータを復元、出力する。
 n=8、データ反転用ビットrが1ビットの場合、誤り訂正符号化部401、402は図20に示すような生成行列を持つハミング符号を用いて誤り訂正符号化処理としてのハミング符号化処理を行う。この時、出力データは13ビットとなる。
 図20からわかるように、データ反転用ビットrに対応する生成行列の第9行に0が含まれている。そのため、データ反転用ビットrを0とした場合の出力データは、rを1とした場合の出力データの各ビットを反転したものとはならない。従って、誤り訂正符号化部401の出力データは、誤り訂正符号化部402の出力データの各ビットを反転したものとはならない。
 しかし、13ビットの出力データのうち12ビットは反転しているため、偏向セレクタ403は、誤り訂正符号化部401、402の出力データのうち、メモリ420のリードディスターブの対象となるビットが少ない方を選択して、メモリ420へ出力することで、リードディスターブ確率を低減させることは可能である。
 偏向セレクタ403は図21に示すような構成にし得る。判定器405が誤り訂正符号化部401、402の出力データを監視し、メモリ420のリードディスターブの対象となるビットが少ない方を選択するようにセレクタ406へ選択信号を出力する。
 図20に示すような生成行列の場合、データ反転用ビットrによって出力データが反転するビットの位置は予め分かっている。その場合、符号処理回路400を図22に示すような構成にし得る。この時、反転回路407はデータ反転用ビットrによって反転するビットのみを反転して出力する。また、偏向セレクタ403の判定器405は、データ反転用ビットrによって反転するビットについてのみ、誤り訂正符号化部401の生成データ及び反転回路407の生成データのうち、どちらがリードディスターブの対象となるビットが少ないかを判定する。このような構成にすることで、誤り訂正符号化部402を省略できる。
 このように、入力データに互いに異なるデータ反転用ビットを付加して誤り訂正符号化処理を行い、複数の誤り訂正符号化データのうち、リードディスターブの対象となるビットが少ないものを選択してメモリに書き込むことで、リードディスターブ確率を低減できる。
 また、復号回路はメモリから読み出したデータの復号及び誤り訂正を行い、データ反転用ビットを破棄して出力するだけなので、メモリアクセスに要する時間の増加を抑制できる。
 (第5の実施形態)図23に本発明の第5の実施形態に係るメモリシステムの概略構成を示す。メモリシステムは、符号処理回路500、復号回路510、メモリ520、及び比較器530を備える。メモリ520へのデータ書き込みを行うメモリコントローラ(上記第1の実施形態におけるメモリコントローラ130と同等のもの)はメモリ520内に含まれているものとする。
 符号処理回路500は、冗長化データ生成回路501及び偏向セレクタ504を有する。冗長化データ生成回路501はnビット(nは1以上の整数)の入力データDinが与えられ、互いに異なるn+1ビットの冗長化データX0、X1を出力する。
 冗長化データ生成回路501は、冗長化符号回路502、503を有する。冗長化符号回路502は、入力データDin及び1ビットの種データsとしての0が与えられ、冗長化符号処理を行ってn+1ビットの冗長化データX0を出力する。
 冗長化符号回路503は、入力データDin及び1ビットの種データsとしての1が与えられ、冗長化符号処理を行ってn+1ビットの冗長化データX1を出力する。
 冗長化符号回路502、503は例えば図13のような論理回路構成とする。
 偏向セレクタ504は、冗長化データX0、X1のうち、メモリ520のリードディスターブの対象となるビットが少ない方を選択し、書き込みデータRDinとしてメモリ520へ出力する。偏向セレクタ504は書き込みのタイミングを指示する書き込み信号Writeが与えられ、メモリ520へのデータ出力に応じてメモリ520へ書き込み信号MWriteを出力する。
 偏向セレクタ504から出力されたデータRDinは、メモリコントローラにより(図示せず)、書き込み信号MWriteに基づいて、メモリ520のアドレス信号Addrで指定されたアドレスに書き込まれる。
 復号回路510はメモリ520からn+1ビットのデータRDoutを読み出し、復号処理を行い、種データsの情報を破棄して、nビットのデータDoutを出力する。復号回路510はデータX0、X1のいずれが入力しても、データDinを出力することができるものである。
 比較器530は、メモリ520への書き込みが行われた後、即座に同じアドレスからデータを読み出し、メモリ520へ書き込まれたデータとメモリ520から読み出されたデータとの比較を行い、比較結果を示す比較結果信号Matchを偏向セレクタ504へ出力する。
 メモリ520内に大量にあるメモリセルの中には、常に1を出力し続けたり、常に0を出力し続けたりする故障したメモリセルがある程度の割合で混在している。このような故障したメモリセルの影響で、比較器530の比較結果が不一致となる場合がある。例えば、あるビットの値が1であるデータを書き込み、このビットに相当するメモリセルが常に0を出力し続ける故障セルであった場合、読み出したデータのこのビットの値は0に変化し、比較器530の比較結果は不一致となる。
 偏向セレクタ504は、この比較結果信号Matchが不一致を示す場合、冗長化データX0、X1のうち、メモリ520のリードディスターブの対象となるビットが多い方を選択して、メモリ520へ出力する。
 冗長化データX0とX1は、すべてのビット又は多数のビットが反転した関係となっている。従って、冗長化データX0、X1の一方をメモリ520に書き込んだ結果、読み出したデータが書き込みデータと不一致となった場合、冗長化データX0、X1の他方を書き込むと、読み出したデータが書き込みデータと一致することが期待される。
 例えば、冗長化符号回路502、503が図13のような論理回路構成となっており、入力データが01100011であった場合、冗長化データX0は001000010となり、冗長化データX1は110111101となる。メモリ520のリードディスターブの対象となる値が1であった場合、偏向セレクタは1が少ない(0が多い)データである冗長化データX0を選択する。冗長化データX0がメモリ520に書き込まれ、これを読み出した値が001000011だった場合、比較器530から出力される比較結果信号Matchは不一致を示す。
 この時、偏向セレクタは冗長化データX0以外のデータ、すなわち冗長化データX1を選択する。メモリ520では、最下位ビットに対応するメモリセルが1に固定されてしまっているが、冗長化データX1は最下位ビットが1であるため、メモリ520によって正しいデータが保持される。その結果、復号回路510によって、正しく元の値に戻すことが可能になる。
 従って、メモリ520に故障メモリセルがあった場合でも、メモリ520に正しく保持されるデータを選択することで、故障メモリセルを救済できる。
 本実施形態によるメモリシステムは、マイクロプロセッサ等のハードウェアに接続して、データの書き込みや読み出しを行う。このようなメモリシステムを用いたデータ書き込み方法を図24に示すフローチャートを用いて説明する。
 ここでは、マイクロプロセッサ(メモリコントローラ内のプロセッサも含む)がメモリにデータを書き込む場合を例に説明するが、マイクロプロセッサ以外のハードウェアがデータを書き込む場合も同様である。マイクロプロセッサはメモリシステムにデータを書き込むために、書き込みたいアドレスをメモリシステムのアドレス信号Addrに出力し、書き込みたいデータをメモリシステムのデータ信号Dinに出力する。そして、マイクロプロセッサはメモリシステムの書き込み信号Writeに対する出力を論理値0から1に変化させることで、書き込み処理を開始させる。
 (ステップS100)マイクロプロセッサから、アドレス信号Addrにより、メモリ520へデータの書き込み先となるアドレスAが与えられる。また、マイクロプロセッサから、冗長化符号回路1へnビットのデータDinが与えられる。
 (ステップS101)冗長化データ生成回路501により冗長化符号処理が行われ、n+1ビットの冗長化データX0、X1が出力される。
 (ステップS102)偏向セレクタ504が、メモリ520のリードディスターブ対象の値に基づいて冗長化データX0、X1の一方を選択する。リードディスターブ対象のビット数が少ない方が選択される。
 (ステップS103)偏向セレクタ504が、ステップS102で選択したデータを書き込みデータRDinとしてメモリ520へ出力する。さらに、偏向セレクタ504がメモリ520への書き込み信号MWriteを論理値0から1へ変化させてメモリ520へ書き込みを指示することで、メモリ520のアドレスAにデータRDinが書き込まれる。
 (ステップS104)メモリ520のアドレスAからデータRDoutを読み出す。
 (ステップS105)比較器5においてデータRDinとデータRDoutが比較され、比較結果を示す比較結果信号Matchが出力される。比較結果信号Matchが真、すなわちデータRDinとデータRDoutが一致、の場合は、データがメモリ520へ正しく書き込めていると判定し、書き込み動作を終了する。
 比較結果信号Matchが偽、すなわちデータRDinとデータRDoutが不一致、の場合は、ステップS106へ進む。
 (ステップS106)偏向セレクタ504がステップS102で選択しなかった方の冗長化データX0、X1を選択し、メモリ520のアドレスAに書き込む。
 ステップS105で比較結果が一致している場合のタイミングチャートは図25に示すようなものとなり、比較結果が不一致である場合のタイミングチャートは図26に示すようなものとなる。
 次に、データ読み出し方法を図27に示すフローチャートを用いて説明する。マイクロプロセッサはメモリシステムからデータを読み出すために、読み出したいアドレスをメモリシステムのアドレス信号Addrに出力することで、メモリシステムの読み出し処理を開始させる。
 (ステップS200)マイクロプロセッサから、アドレス信号AddrによりアドレスAが与えられる。
 (ステップS201)メモリ520のアドレスAからn+1ビットのデータRDoutが読み出される。
 (ステップS202)データRDoutが復号回路520に与えられる。
 (ステップS203)復号処理が行われ、nビットのデータDoutがメモリ520のアドレスAのデータとして出力される。
 このように、まずはメモリ520のリードディスターブの対象となるビットが少ない方の冗長化データを選択して書き込み、比較器530の比較結果からメモリセルの故障等により正しくデータが書き込めていない場合は、他方の冗長化データを選択して書き込むことで、リードディスターブ確率を低減させつつ、故障メモリセルの救済を図る。
 図23では冗長化データ生成回路501は入力データに1ビットの種データsを付加して2つの冗長化データX0、X1を出力していたが、3つ以上の冗長化データを出力するようにしてもよい。
 冗長化データ生成回路501が、2ビットの種データsを付加して4つの冗長化データX0~X3を出力する構成例を図28に示す。冗長化データ生成回路501は冗長化符号回路541~544を有する。冗長化符号回路541~544は、それぞれnビットの入力データDinに2ビットの種データsとして00、01、10、11が付加され、n+2ビットの冗長化データX0~X3を出力する。
 入力データDinが6ビットの場合、冗長化符号回路541~544は、図29に示すような冗長化符号生成行列を用いて冗長化符号処理を行い、8ビットの冗長化データを出力する。
 入力データDinが101100であった場合、冗長化データX0は11011100、X1は00101011、X2は01110110、X3は10001001となる。メモリ520のリードディスターブの対象となる値が1であった場合、偏向セレクタ504は、まず値が1のビット数が最小の冗長化データX3を選択する。
 冗長化データX3をメモリ520に書き込んだ後に、比較器530が同じアドレスから読み出した値が冗長化データX3と不一致であれば、偏向セレクタ504は2番目に値が1のビット数が少ない冗長化データX1を選択する。比較器530による比較結果が一致するまで偏向セレクタは順次選択を行う。
 また、例えば冗長化データX3を書き込んだ後に読み出されたデータが10001000であった場合、最下位ビットに対応するメモリセルが0に固定される故障が発生していると推定される。この時、偏向セレクタ504の選択候補から冗長化データX3だけでなく、最下位ビットが0ではない冗長化データX1も選択候補から外し、偏向セレクタ504が冗長化データX0、X2の中から1つを選択するようにしてもよい。これにより、メモリ520への書き込みに要する時間を短縮できる。
 また、偏向セレクタ504が最後の1つの冗長化データを選択する場合は、正しく書き込めることを期待して、書き込み後の比較器530による比較を省略するようにしてもよい。
 このように、本実施形態によるメモリセルは、リードディスターブ確率を低減させ、かつ不良メモリセルを救済できる。また、復号回路は偏向セレクタでどの冗長化データが選択されたかに関わらず、メモリから読み出したデータに対して所定の復号処理を行うことで元のデータを得ることができるため、メモリアクセスに要する時間の増加を抑制できる。
 上記第1~第5の実施形態は、リードディスターブ確率を下げるためにメモリセルの0、1によるリードディスターブ確率の違いに着目したものであるが、メモリセルが2状態しか持たないことに限定されず、メモリセルの記憶状態によって要因が変化するすべての性能に対して適応可能である。
 なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
100 符号処理回路
110 復号回路
120 メモリ
130 メモリコントローラ

Claims (8)

  1.  書き込み対象のデータの冗長化符号処理を行い、所定値をとるビットの個数が全ビット数の半分以下となるデータを生成する符号処理回路と、
     前記符号処理回路により生成される前記データが書き込まれるメモリと、
     を備えるメモリシステム。
  2.  前記符号処理回路は、nビット(nは1以上の整数)の前記書き込み対象のデータに対して冗長化符号処理を行い、複数のn+mビット(mは1以上の整数)の冗長化データを生成し、前記複数の冗長化データのうち前記所定値をとるビットの個数が最小の冗長化データを選択し、
     前記選択された冗長化データが前記メモリに書き込まれることを特徴とする請求項1に記載のメモリシステム。
  3.  前記複数の冗長化データのいずれか1つを復号処理しても前記書き込み対象のデータを生成する復号回路をさらに備え、
     前記復号回路は前記メモリからn+mビットのデータを読み出し、復号処理を行ってメモリシステム外に出力することを特徴とする請求項2に記載のメモリシステム。
  4.  前記符号処理回路は、
     nビット(nは1以上の整数)の前記書き込み対象のデータと、互いに異なるmビット(mは1以上の整数)の種データとが与えられ、前記書き込み対象のデータに前記種データを付加したデータに対して冗長化符号処理を行いn+mビットの冗長化データを生成する2個以下の複数個の冗長化符号回路と、
     前記複数個の冗長化符号回路により生成された前記冗長化データのうち、前記所定値をとるビットの個数が最小の冗長化データを選択する偏向セレクタと、
     を有し、前記偏向セレクタにより選択されたデータが前記メモリへ書き込まれることを特徴とする請求項2に記載のメモリシステム。
  5.  前記符号処理回路は、
     前記書き込み対象のデータに、互いに異なる1ビット以上の反転ビットが付加されたデータに対して、所定の生成行列を用いて誤り訂正符号化処理を行い、誤り訂正符号化データを生成する複数の誤り訂正符号化部と、
     前記複数の誤り訂正符号化部により生成された誤り訂正符号化データのうち、前記所定値をとるビットの個数が最小の誤り訂正符号化データを選択する偏向セレクタと、
     を有し、前記偏向セレクタによって選択された誤り訂正符号化データが前記メモリに書き込まれることを特徴とする請求項2に記載のメモリシステム。
  6.  前記メモリから読み出されたデータに対して前記生成行列に対応する検査行列を用いて復号及び誤り訂正を行い、前記反転ビット部分を破棄してメモリシステム外に出力する復号回路をさらに備えることを特徴とする請求項5に記載のメモリシステム。
  7.  前記メモリから読み出されるデータと、前記符号処理回路により生成されるデータとを比較する比較器をさらに備え、
     前記符号処理回路は、
     nビット(nは1以上の整数)の前記書き込み対象のデータに、互いに異なる種データが付加されたデータに対して冗長化符号処理を行い、n+mビット(mは1以上の整数)の冗長化データを生成する複数の冗長化符号回路と、
     前記複数の冗長化符号回路により生成される前記冗長化データを、前記所定値をとるビットの個数が少ない順に選択し、前記比較器による比較結果が一致を示した時に選択していた冗長化データを前記メモリに書き込むデータとして確定する偏向セレクタと、
     を有することを特徴とする請求項1に記載のメモリシステム。
  8.  前記複数の冗長化データのいずれか1つを復号処理しても前記書き込み対象のデータに前記種データが付加されたデータを生成する復号回路をさらに備え、
     前記復号回路は、前記メモリからn+mビットのデータを読み出し、復号処理を行い、前記種データ部分を破棄してメモリシステム外に出力することを特徴とする請求項7に記載のメモリシステム。
PCT/JP2009/070702 2008-12-11 2009-12-10 メモリシステム Ceased WO2010067847A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/157,396 US9105358B2 (en) 2008-12-11 2011-06-10 Memory system having an encoding processing circuit for redundant encoding process
US14/789,090 US9547551B2 (en) 2008-12-11 2015-07-01 Memory system having an encoding processing circuit for redundant encoding process

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008315459A JP5284069B2 (ja) 2008-12-11 2008-12-11 メモリシステム及びメモリアクセス方法
JP2008-315459 2008-12-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/157,396 Continuation US9105358B2 (en) 2008-12-11 2011-06-10 Memory system having an encoding processing circuit for redundant encoding process

Publications (1)

Publication Number Publication Date
WO2010067847A1 true WO2010067847A1 (ja) 2010-06-17

Family

ID=42242833

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/070702 Ceased WO2010067847A1 (ja) 2008-12-11 2009-12-10 メモリシステム

Country Status (3)

Country Link
US (2) US9105358B2 (ja)
JP (1) JP5284069B2 (ja)
WO (1) WO2010067847A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5284069B2 (ja) * 2008-12-11 2013-09-11 株式会社東芝 メモリシステム及びメモリアクセス方法
US8972821B2 (en) * 2010-12-23 2015-03-03 Texas Instruments Incorporated Encode and multiplex, register, and decode and error correction circuitry
JP5458064B2 (ja) * 2011-07-14 2014-04-02 株式会社東芝 不揮発性半導体メモリ
US8839073B2 (en) * 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
DE102015104841B4 (de) * 2015-03-30 2024-08-14 Infineon Technologies Ag Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors
FR3077655A1 (fr) * 2018-02-05 2019-08-09 Proton World International N.V. Gestion d'une memoire non volatile
US20250226050A1 (en) * 2024-01-09 2025-07-10 Samsung Electronics Co., Ltd. Method, device, and apparatus with memory repair based on exclusive-or

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01295349A (ja) * 1988-05-23 1989-11-29 Seiko Instr Inc 半導体不揮発性メモリー装置
JP2004152366A (ja) * 2002-10-29 2004-05-27 Sony Corp データ記憶方法及びデータ記憶回路

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01108655A (ja) * 1987-10-22 1989-04-25 Hitachi Ltd メモリシステムの読出データ誤り検出方式
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory
JPH07334991A (ja) * 1994-06-07 1995-12-22 Sony Corp 半導体不揮発性記憶装置
JPH07240098A (ja) * 1994-02-25 1995-09-12 Sony Corp 半導体不揮発性記憶装置
US5864569A (en) * 1996-10-18 1999-01-26 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
TW385602B (en) * 1998-05-26 2000-03-21 Koninkl Philips Electronics Nv Transmission system with adaptive channel encoder and decoder
JP3551359B2 (ja) 1999-05-25 2004-08-04 日本ビクター株式会社 変調装置、復調装置
JP3839215B2 (ja) * 2000-03-14 2006-11-01 株式会社日立製作所 誤り検出・訂正方法、計算機システムの主記憶制御装置、及び計算機システム
US7020811B2 (en) * 2001-04-24 2006-03-28 Sun Microsystems, Inc. System and method for verifying error detection/correction logic
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
JP2007299436A (ja) 2006-04-27 2007-11-15 Sony Corp 記憶装置の記録方法
US8010865B2 (en) * 2007-01-30 2011-08-30 Via Telecom, Inc. System and method for encoding and decoding in wireless communication systems
US8196016B1 (en) * 2007-12-05 2012-06-05 Aquantia Corporation Trapping set decoding for transmission frames
JP5202130B2 (ja) 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
JP5283989B2 (ja) 2008-06-24 2013-09-04 株式会社東芝 メモリシステム及びメモリアクセス方法
JP5284069B2 (ja) * 2008-12-11 2013-09-11 株式会社東芝 メモリシステム及びメモリアクセス方法
US8443256B2 (en) * 2011-01-24 2013-05-14 Xilinx, Inc. Method and apparatus for determining a cyclic redundancy check (CRC) for a data message
JP5269151B2 (ja) * 2011-06-09 2013-08-21 シャープ株式会社 半導体記憶装置
US8812934B2 (en) * 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01295349A (ja) * 1988-05-23 1989-11-29 Seiko Instr Inc 半導体不揮発性メモリー装置
JP2004152366A (ja) * 2002-10-29 2004-05-27 Sony Corp データ記憶方法及びデータ記憶回路

Also Published As

Publication number Publication date
JP2010140227A (ja) 2010-06-24
US20110276858A1 (en) 2011-11-10
US9105358B2 (en) 2015-08-11
US20150301892A1 (en) 2015-10-22
US9547551B2 (en) 2017-01-17
JP5284069B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
US9547551B2 (en) Memory system having an encoding processing circuit for redundant encoding process
US8091010B2 (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
US8996958B2 (en) Method, device and computer program product for decoding a codeword
US20110213930A1 (en) Multi-level cell memory device and method thereof
TW202006544A (zh) 利用錯誤更正碼進行資料位元錯誤的偵測與更正
JP2015142381A (ja) データ反転によってデータ記憶を改良するための装置および方法
KR100905712B1 (ko) 에러 정정 코드를 이용한 병렬 비트 테스트 장치
US10423484B2 (en) Memory controller, memory system, and control method
US11025281B2 (en) Memory system
US10191801B2 (en) Error correction code management of write-once memory codes
JP6657634B2 (ja) 符号化装置、メモリシステム、通信システムおよび符号化方法
TW201941053A (zh) 採用連氏錯誤校正碼設計的記憶體儲存裝置及其編碼方法
JP5283989B2 (ja) メモリシステム及びメモリアクセス方法
WO2014109107A1 (ja) 不揮発性半導体記憶装置及びそのテスト方法
CN110716824B (zh) 编码方法及使用所述编码方法的存储器存储装置
US11204831B2 (en) Memory system
JP5563125B2 (ja) メモリアクセス装置
JP2017107620A (ja) 半導体装置及び不揮発メモリ
CN104424046B (zh) 数据处理的方法、装置和设备
KR20070112953A (ko) Ecc 제어회로, 제어방법 및 반도체 메모리 장치
JP5492329B2 (ja) メモリアクセス装置
CN119727740A (zh) 一种数据编解码方法及装置
KR20100091409A (ko) 불휘발성 메모리 소자

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09831951

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09831951

Country of ref document: EP

Kind code of ref document: A1