WO2022018950A1 - メモリシステムおよびメモリ動作プログラム - Google Patents

メモリシステムおよびメモリ動作プログラム Download PDF

Info

Publication number
WO2022018950A1
WO2022018950A1 PCT/JP2021/019164 JP2021019164W WO2022018950A1 WO 2022018950 A1 WO2022018950 A1 WO 2022018950A1 JP 2021019164 W JP2021019164 W JP 2021019164W WO 2022018950 A1 WO2022018950 A1 WO 2022018950A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
random number
remainder
read
Prior art date
Application number
PCT/JP2021/019164
Other languages
English (en)
French (fr)
Inventor
みどり 相澤
真実 黒田
治子 高橋
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Priority to CN202180060993.XA priority Critical patent/CN116134425A/zh
Priority to US18/005,046 priority patent/US20230260587A1/en
Publication of WO2022018950A1 publication Critical patent/WO2022018950A1/ja

Links

Images

Classifications

    • 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/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • G11C2029/0411Online error correction

Definitions

  • This disclosure relates to a memory system and a memory operation program.
  • the memory system includes a soft error generation unit that generates write data or read data in consideration of probability failure by using random numbers.
  • the memory operation program causes a computer to generate write data or read data in consideration of probability failure by using random numbers.
  • write data or read data in consideration of probability failure is generated by using random numbers.
  • whether or not an error occurs randomly changes depending on the random number. Therefore, the occurrence of an error is probabilistic, and a soft error can be reproduced.
  • the memory system includes a first soft error generation unit and a second soft error generation unit.
  • the first soft error generation unit uses the first random number to generate write data in which probability failure is taken into consideration.
  • the second soft error generation unit uses the second random number to generate read data in which probability failure is taken into consideration.
  • the memory operation program generates write data in which the probability failure is considered by using the first random number, and the probability failure is considered by using the second random number. Have the computer perform the generation of read data.
  • the write data in consideration of the probability failure is generated by using the first random number, and the second aspect is generated.
  • the second aspect is generated.
  • read data considering poor probability is generated.
  • whether or not an error occurs randomly changes depending on the random number. Therefore, the occurrence of an error is probabilistic, and a soft error can be reproduced.
  • FIG. 1 shows an example of a functional block of an information processing system according to an embodiment.
  • This information processing system includes a host computer 100 and a memory unit 200.
  • the memory unit 200 includes a memory controller 300, one or more memory cell array units 400, and a power supply unit 500. Note that FIG. 1 illustrates a state in which one memory cell array unit 400 is provided.
  • the host computer 100 controls the memory unit 200. Specifically, the host computer 100 issues a command for designating the logical address of the access destination, and supplies the command and data to the memory unit 200. The host computer 100 receives the data output from the memory unit 200.
  • the command is for controlling the memory unit 200, and is, for example, a write command instructing a data write process, a read command instructing a data read process, or a reset command instructing a data erase process. Includes commands.
  • the logical address is an address assigned to each area of the access unit when the host computer 100 accesses the memory unit 200 in the address space defined by the host computer 100.
  • the memory controller 300 controls one or more memory cell array units 400.
  • the memory controller 300 receives a write command from the host computer 100 to specify a logical address. Further, the memory controller 300 executes a data writing process according to a write command. In this write process, the logical address is converted into a physical address, and data is written to the physical address.
  • the physical address is an address assigned in one or a plurality of memory cell array units 400 for each access unit when the memory controller 300 accesses one or a plurality of memory cell array units 400.
  • the memory controller 300 Upon receiving the read command for specifying the logical address, the memory controller 300 converts the logical address into a physical address and reads data from the physical address.
  • the memory controller 300 outputs the read data as read data to the host computer 100. Further, when the memory controller 300 receives a reset command for designating a logical address from the host computer 100, the memory controller 300 converts the logical address into a physical address and erases the data written in the physical address.
  • the power supply unit 500 supplies a desired voltage to one or a plurality of memory cell array units 400.
  • the power supply unit 500 supplies, for example, a voltage to be used at the time of writing or reading to the word line selection unit 22 described later.
  • the power supply unit 500 supplies, for example, a voltage to be used at the time of writing or reading to the command control unit 23 described later.
  • FIG. 2 shows an example of a functional block of the memory cell array unit 400.
  • the memory cell array unit 400 is composed of, for example, a semiconductor chip.
  • the memory cell array unit 400 has, for example, a memory cell array 10 and a drive unit 20.
  • the drive unit 20 exchanges commands, write data, read data, and the like with the memory controller 300, for example.
  • the drive unit 20 writes data to the memory cell array 10 according to, for example, a write command, and reads data from the memory cell array 10 according to a read command.
  • the drive unit 20 corresponds to a specific example of the "memory system” and “memory operation program” of the present disclosure.
  • the drive unit 20 is composed of hardware that realizes the functions of the drive unit 20.
  • the drive unit 20 may be a volatile memory such as a DRAM (Dynamic Random Access Memory) or an EEPROM (Electrically Erasable Programmable Read-).
  • the CPU realizes the function of the drive unit 20 by being stored in a non-volatile memory such as (OnlyMemory) or a flash memory and loading the drive unit 20 into the CPU (Central Processing Unit).
  • the memory cell array 10 is, for example, a so-called STT-MRAM (Spin Transfer Torque Magnetic Random Access Memory).
  • the memory cell array 10 has a plurality of memory cells MC.
  • the memory cell MC includes a resistance changing element and a switch element that controls a current flowing through the resistance changing element.
  • the resistance changing element is, for example, a storage element including a magnetic tunnel junction.
  • the resistance changing element has, for example, a fixed layer (RL) and a free layer (FL), and has an ultrathin tunnel insulating film layer between the fixed layer (RL) and the free layer (FL). There is.
  • the stored data electrical resistance value
  • the resistance changing element the stored data (electrical resistance value) is rewritten by changing the direction of magnetization of the free layer (FL).
  • the resistance changing element when the direction of magnetization of the free layer (FL) is changed, electrons having the same spin direction are injected into the magnetic resistance changing element MTJ.
  • the memory cell array 10 includes, for example, a plurality of word line WLs, a plurality of bit line BLs, a plurality of memory cell MCs arranged one by one at positions where the word line WL and the bit line BL face each other, and a plurality of memory cells MC. It has a source line SL of.
  • data can be written to the memory cell MC designated by an address input from the outside.
  • the data stored in the memory cell MC designated by the address input can be read out.
  • the data values stored in the memory cell MC are distinguished by the resistance state of the resistance changing element. For example, a high resistance state is distinguished from "1", and a low resistance state is distinguished from "0".
  • the physical state for the logical data is not limited to the above, and may be distinguished from "0" in the high resistance state and "1" in the low resistance state, for example. Further, the physical state of the logical data may change for each address.
  • the drive unit 20 includes an address control unit 21, a word line selection unit 22, a command control unit 23, a soft error generator 24, a write control unit 25, a bit line selection unit 26, and a read control unit. It has a unit 27.
  • the address control unit 21 outputs a control signal according to the row address input from the address line to the word line selection unit 22, and outputs a control signal according to the column address input from the address line to the bit line selection unit 26. do.
  • the address control unit 21 outputs a signal for controlling the timing of changing the output voltage to the word line selection unit 22 and the bit line selection unit 26.
  • the word line selection unit 22 includes a circuit that drives each word line WL at a predetermined voltage required for the write, read, or reset operation when the write, read, or reset operation is performed.
  • the word line selection unit 22 is connected to each word line WL of the memory cell array 10 and selects the word line WL corresponding to the row address input from the address line.
  • the word line selection unit 22 outputs a predetermined voltage required for write, read, or reset operations to the selected word line WL.
  • the bit line selection unit 26 performs data writing operation, for example, when performing an operation of changing the state of the resistance changing element of the memory cell MC from a high resistance state or a low resistance state to a low resistance state. It includes a circuit that drives the bit line BL connected to the memory cell MC for writing "0" at a predetermined voltage required for the writing operation of the data "0". Further, when the bit line selection unit 26 performs an operation of writing data "1", for example, when performing an operation of changing the state of the resistance changing element of the memory cell MC from a high resistance state or a low resistance state to a high resistance state.
  • the bit line selection unit 26 further includes a circuit that drives the bit line BL connected to the memory cell MC that reads the data at a predetermined voltage at which the data is not rewritten when the operation of reading the data is performed.
  • the bit line selection unit 26 is connected to each bit line BL of the memory cell array 10 and selects the corresponding bit line BL according to the column address input from the address line.
  • the bit line selection unit 26 outputs a predetermined voltage required for write, read, or reset operations to the selected bit line BL.
  • the command control unit 23 controls the word line selection unit 22, the soft error generator 24, the write control unit 25, and the read control unit 27 according to the input command. For example, when a write command is input, the command control unit 23 instructs the soft error generator 24 to generate write data Dw including a soft error.
  • the soft error generator 24 generates write data Dw including a soft error based on the data (input data Din) input from the memory controller 300.
  • the command control unit 23 further instructs the write control unit 25 to output the write data Dw input from the soft error generator 24 to the bit line selection unit 26 at a predetermined timing, and the word line selection unit 23. 22 is instructed to scan the memory cell array 10 at a predetermined timing.
  • the write control unit 25 outputs the write data Dw input from the soft error generator 24 to the bit line selection unit 26 at a predetermined timing.
  • the command control unit 23 further instructs the read control unit 27 to read the written data from the memory cell array 10.
  • the read control unit 27 outputs the read data (read data Dr) to the memory controller 300 as output data Dout.
  • FIG. 3 shows an example of the functional block of the soft error generator 24.
  • the soft error generator 24 has, for example, a random number generator 24a, a probability failure register 24b, a MOD calculator 24c, and an XOR calculator 24d.
  • the random number generator 24a generates a random number D1 triggered by the acquisition of the write command WC.
  • the random number generator 24a generates a random number D1 by, for example, the method described in JP-A-2001-344094.
  • the probability failure register 24b is a register in which a register value D2 for generating a soft error is specified.
  • the register value D2 is a fixed value stored in the probability failure register 24b.
  • the MOD calculator 24c performs a remainder calculation (D1% D2) using the random number D1 generated by the random number generator 24a and the register value D2 read from the probability failure register 24b, and obtains the remainder D3. Output to the XOR calculator 24d.
  • the XOR calculator 24d performs an XOR calculation on the remainder D3 input from the MOD calculator 24c and the data (input data Din) input from the memory controller 300, and writes the value obtained by the XOR calculation. It is output to the write control unit 25 as Dw.
  • the write data Dw may include a soft error or may not include a soft error. When the write data Dw does not include a soft error, the write data Dw is equal to the input data Din. That is, it can be said that the write data Dw is the data in which the probability defect is taken into consideration.
  • FIG. 4 shows an example of a write operation in the memory cell array unit 400.
  • the random number generator 24a acquires the write command WC from the memory controller 300 (command control unit 23)
  • the random number generator 24a generates the random number D1 triggered by the acquisition of the write command WC (steps S101 and S102).
  • the MOD calculator 24c performs a remainder calculation (D1% D2) using the random number D1 generated by the random number generator 24a and the register value D2 read from the probability failure register 24b (step S103). As a result, a remainder D3 is obtained.
  • the MOD calculator 24c outputs the obtained remainder D3 to the XOR calculator 24d.
  • the XOR calculator 24d When the XOR calculator 24d acquires the remainder D3 from the MOD calculator 24c, the XOR calculator 24d performs the XOR calculation triggered by the acquisition of the remainder D3 (step S104). Specifically, the XOR calculator 24d performs an XOR calculation on the remainder D3 input from the MOD calculator 24c and the data (input data Din) input from the memory controller 300. The XOR calculator 24d outputs the value obtained thereby to the write control unit 25 as write data Dw.
  • the write control unit 25 outputs the write data Dw input from the soft error generator 24 to the bit line selection unit 26 at a predetermined timing.
  • the word line selection unit 22 and the bit line selection unit 26 store the write data Dw in a predetermined address of the memory cell array 10 according to the timing control and the applied voltage control by the address control unit 21 (step S105).
  • the bit line selection unit 26 reads the write data Dw from the predetermined address of the memory cell array 10 as needed.
  • the read control unit 27 outputs the write data Dw obtained by the bit line selection unit 26 to the memory controller 300 as output data Dout. In this way, the write operation in the memory cell array unit 400 is performed.
  • the write data Dw in consideration of the soft error is generated by using the random number D1.
  • whether or not an error occurs randomly changes depending on the random number D1. Therefore, the occurrence of an error is probabilistic, and a soft error can be reproduced. Therefore, it is possible to reproduce the success probability of writing to the memory cell array 10.
  • the write data Dw generated in this way is stored in the memory cell array 10, and then the write data Dw read from the memory cell array 10 is used again to verify the correction function for soft errors. Can be done.
  • the remainder calculation is performed using the random number D1 and the register value D2 (fixed value), and the write data Dw is generated using the remainder D3 obtained thereby and the input data Din. ..
  • the occurrence of an error can be probabilistically generated, and a soft error can be reproduced.
  • an XOR operation is performed using the remainder D3 and the input data Din, and the value obtained by the XOR operation becomes the write data Dw.
  • FIG. 5 shows a modified example of the memory cell array unit 400 according to the above embodiment.
  • the soft error generator 24 is omitted, and the soft error generator 28 and the write-back control unit 29 are added.
  • FIG. 6 shows an example of the functional block of the soft error generator 28.
  • the soft error generator 28 has, for example, a random number generator 28a, a probability failure register 28b, a MOD calculator 28c, and an XOR calculator 28d.
  • the random number generator 28a generates a random number D4 triggered by the acquisition of the read command RC.
  • the random number generator 28a generates a random number D4 by, for example, the method described in JP-A-2001-344094.
  • the probability failure register 28b is a register in which a register value D5 for generating a soft error is specified.
  • the MOD calculator 28c performs a remainder operation (D4% D5) using the random number D4 generated by the random number generator 28a and the register value D5 read from the probability failure register 28b, and obtains the remainder D6. Output to the XOR calculator 28d.
  • the XOR calculator 28d performs an XOR calculation on the remainder D6 input from the MOD calculator 28c and the data (read data Dr1) read from the memory cell array 10 by the bit line selection unit 26, thereby performing an XOR calculation.
  • the obtained value is output to the read control unit 27 as read data Dr2.
  • the read data Dr2 may include a soft error or may not contain a soft error. When the read data Dr2 does not include a soft error, the read data Dr2 is equal to the read data Dr1.
  • the read data Dr1 is data written in the memory cell array 10 by the drive unit 20.
  • the read data Dr1 is, for example, the input data Din input from the memory controller 300.
  • the read control unit 27 outputs the data (read data Dr2) input from the soft error generator 28 to the memory controller 300 as output data Dout.
  • the write-back control unit 29 outputs the data (read data Dr2) output from the soft error generator 28 to the write control unit 25.
  • the write control unit 25 writes the read data Dr2 to the memory cell array so as to overwrite the read data Dr1 with the acquisition of the read data Dr2 as a trigger.
  • FIG. 7 shows an example of a read operation in the memory cell array unit 400.
  • the random number generator 28a acquires the read command RC from the memory controller 300 (command control unit 23)
  • the random number generator 28a generates the random number D4 triggered by the acquisition of the read command RC (steps S201 and S202).
  • the MOD calculator 28c performs a remainder calculation (D4% D5) using the random number D4 generated by the random number generator 28a and the register value D5 read from the probability failure register 28b (step S203). As a result, a remainder D6 is obtained.
  • the MOD calculator 28c outputs the obtained remainder D4 to the XOR calculator 28d.
  • the XOR calculator 28d When the XOR calculator 28d acquires the remainder D6 from the MOD calculator 28c, the XOR calculator 28d performs the XOR calculation triggered by the acquisition of the remainder D6 (step S204). Specifically, the XOR calculator 28d performs an XOR operation on the remainder D6 input from the MOD calculator 28c and the data (read data Dr1) read from the memory cell array 10 by the bit line selection unit 26. I do. The XOR calculator 28d outputs the value obtained thereby as read data Dr2 to the read control unit 27 and the write-back control unit 29.
  • the read control unit 27 outputs the data (read data Dr2) input from the soft error generator 28 to the memory controller 300 as output data Dout (step S205).
  • the write-back control unit 29 outputs the data (read data Dr2) input from the soft error generator 28 to the write control unit 25.
  • the write control unit 25 writes the read data Dr2 to the memory cell array 10 so as to overwrite the read data Dr1 with the acquisition of the read data Dr2 as a trigger.
  • the read data Dr2 is written back (step S206). In this way, the read operation in the memory cell array unit 400 is performed.
  • the read data Dr2 in consideration of the soft error is generated by using the random number D4.
  • whether or not an error occurs randomly changes depending on the random number D4. Therefore, the occurrence of an error is probabilistic, and a soft error can be reproduced. Therefore, it is possible to reproduce the probability of loss of retained data in the memory cell array 10 and the probability of erroneous writing due to the read current flowing through the memory cell array 10 when reading the retained data from the memory cell array 10.
  • the soft error cannot be eliminated by re-execution of the read operation.
  • the correct data in which the error is corrected is written in the memory cell array 10. This makes it possible to eliminate soft errors.
  • the remainder calculation is performed using the random number D4 and the register value D5 (fixed value), and the remainder D6 obtained thereby and the read data Dr1 are used to generate the read data Dr2.
  • the occurrence of an error can be probabilistically generated, and a soft error can be reproduced.
  • the read data Dr2 is written to the memory cell array 10 so as to overwrite the read data Dr1.
  • the read data Dr2 can be read from the memory cell array 10 again, and the read data Dr2 can be used to verify the correction function for soft errors.
  • the soft error cannot be eliminated by re-execution of the read operation.
  • the correct data in which the error is corrected is written in the memory cell array 10. This makes it possible to eliminate soft errors.
  • FIG. 8 shows a modification of the memory cell array unit 400 according to the modification A.
  • a soft error generator 24 is added to the memory cell array unit 400 according to the modification A.
  • the soft error generator 24 generates data (write data Dw) that may include soft errors during writing, and the generated write data Dw is generated by the write control unit 25 and the bit line selection unit 26. It is stored in the memory cell array 10.
  • the write data Dw stored in the memory cell array 10 is read out from the memory cell array 10 by the bit line selection unit 26 as the read data Dr1.
  • the read data Dr1 read from the memory cell array 10 and the soft error generator 28 generate data (read data Dr2) that may include a soft error at the time of reading.
  • the success probability of writing to the memory cell array 10 the loss probability of the retained data in the memory cell array 10, and the probability of erroneous writing due to the read current flowing through the memory cell array 10 when reading the retained data from the memory cell array 10 are determined. It can be reproduced.
  • the soft error cannot be eliminated by re-execution of the read operation.
  • the correct data in which the error is corrected is written in the memory cell array 10. This makes it possible to eliminate soft errors.
  • FIG. 9 shows a modification of the memory controller 300 that controls the memory cell array unit 400 according to the modification A.
  • the memory controller 300 has, for example, a correction unit 31 and a write-back control unit 32, as shown in FIG.
  • the correction unit 31 compares, for example, the output data Dout input from the memory cell array unit 400 (read control unit 27) with the input data Din output to the memory cell array unit 400 (write control unit 25), and outputs data. Determine if there is an error in Dout.
  • the correction unit 31 determines that there is an error in the output data Dout, the correction unit 31 corrects the output data Dout by using, for example, an error correction code (for example, ECC (Error Correction Code) parity) included in the output data Dout. do.
  • ECC Error Correction Code
  • the correction unit 31 outputs the data (correction data Dc) obtained by the correction to the write-back control unit 32.
  • the write-back control unit 32 outputs the correction data Dc input from the correction unit 31 to the memory cell array unit 400 (write control unit 25).
  • the write control unit 25 When the correction data Dc is input from the memory controller 300, the write control unit 25 outputs the input correction data Dc to the bit line selection unit 26 as write data Dw.
  • the bit line selection unit 26 writes the write data Dw input from the write control unit 25 to the memory cell array 10 so as to overwrite the read data Dr1, thereby performing correction write-back.
  • FIG. 10 shows an example of a read operation in the memory cell array unit 400 and an example of a correction / write-back operation in the memory controller 300.
  • the memory cell array unit 400 executes the above steps S201 to S206.
  • the correction unit 31 uses, for example, the output data Dout input from the memory cell array unit 400 (read control unit 27) and the input data Din output to the memory cell array unit 400 (write control unit 25). In comparison with and, it is determined whether or not there is an error in the output data Dout (step S207). When the correction unit 31 determines that there is no error in the output data Dout (step S207; N), the correction write-back operation is terminated and the read operation is terminated.
  • the correction unit 31 determines that the output data Dout has an error (step S207; Y)
  • the correction unit 31 corrects the output data Dout by using, for example, the error correction code included in the output data Dout. Generates correction data Dc (step S208).
  • the correction unit 31 outputs the correction data Dc obtained by the correction to the write-back control unit 32.
  • the write-back control unit 32 outputs the correction data Dc input from the correction unit 31 to the memory cell array unit 400 (write control unit 25).
  • the write control unit 25 When the correction data Dc is input from the memory controller 300, the write control unit 25 outputs the input correction data Dc to the bit line selection unit 26 as write data Dw.
  • the bit line selection unit 26 writes the write data Dw input from the write control unit 25 to the memory cell array 10 so as to overwrite the read data Dr1, thereby performing correction write-back (step S209).
  • the error-corrected data (corrected data Dc) is written to the memory cell array 10 so as to overwrite the read data Dr1.
  • data without soft errors can be given to the soft error generator 28, so that, for example, the correction function for soft errors can be verified.
  • FIG. 11 shows a modification of the memory cell array unit 400 according to the above embodiment.
  • the soft error generator 24 is omitted, and the soft error generator 410 having the same function as the soft error generator 24 is provided separately from the memory cell array unit 400. ..
  • the drive unit 20 and the soft error generator 410 correspond to a specific example of the "memory system" and "memory operation program" of the present disclosure.
  • the soft error generator 410 which is unnecessary for the user, on the memory cell array unit 400. Further, when the soft error generator 410 needs to be modified (for example, the random number generation algorithm is changed), it is not necessary to recreate the memory cell array unit 400, and the modification cost can be reduced.
  • the soft error generator 410 is provided separately from the memory cell array unit 400, the soft error generator 410 is configured by software (program), and the drive unit 20 is hardware. It can also be configured. In this case, for example, the operation of the memory cell array unit 400 is controlled by using an information processing device in which a soft error generator 410, which is software (program), is installed.
  • FIG. 12 shows a modification of the memory cell array unit 400 according to the modification A.
  • the soft error generator 28 and the write-back control unit 29 are omitted, and the soft error generator 420 having the same function as the soft error generator 28 and the write-back control unit 29
  • a write-back control unit 430 having the same function is provided separately from the memory cell array unit 400.
  • the drive unit 20, the soft error generator 420, and the write-back control unit 430 correspond to a specific example of the "memory system" and "memory operation program" of the present disclosure.
  • the soft error generator 420 and the write-back control unit 430 are provided separately from the memory cell array unit 400, so that the soft error generator 420 and the write-back control unit 430 are software (programmed). ), And the drive unit 20 can be configured by hardware.
  • the operation of the memory cell array unit 400 is controlled by using an information processing device in which a soft error generator 420 and a write-back control unit 430, which are software (programs), are installed.
  • the memory cell array 10 is an STT-MRAM.
  • the memory cell array 10 may be an MRAM different from the STT-MRAM, or may be a non-volatile memory different from the MRAM.
  • the present disclosure may have the following structure.
  • the soft error generation unit performs a remainder calculation using a random number and a fixed value, and generates the write data using the remainder obtained by the remainder and input data.
  • the soft error generating unit performs a remainder calculation using a random number and a fixed value, and generates the read data using the remainder obtained by the remainder and the data read from the memory. system.
  • the soft error generating part is The random number generator that generates the random number and the random number generator The register with the fixed value specified and The first calculation unit that performs the remainder calculation and The memory system according to (2), which includes a second arithmetic unit that generates the write data.
  • the soft error generating part is The random number generator that generates the random number and the random number generator The register with the fixed value specified and The first calculation unit that performs the remainder calculation and The memory system according to (3), which includes a second arithmetic unit that generates read data.
  • the memory system according to (6) wherein the second calculation unit performs an XOR operation using the remainder and the input data, and uses the value obtained by the XOR calculation as the read data.
  • the memory system according to (3) further comprising a writing unit for writing the read data to the memory so as to overwrite the memory data.
  • the memory system according to (2) further comprising a write control unit for writing the write data to the memory.
  • the memory system according to (3) further comprising a read control unit for reading the read data from the memory.
  • the first soft error generator that generates write data considering the probability failure by using the first random number
  • a memory system including a second soft error generator that generates read data in consideration of probability failure by using a second random number.
  • the first soft error generating unit performs a remainder calculation using the first random number and the first fixed value, and the write data is used by the first remainder obtained by the remainder and the input data.
  • the second soft error generating unit performs a remainder calculation using the second random number and the second fixed value, and uses the second remainder obtained by the remainder and the data read from the memory.
  • the memory system according to (11), which generates the read data.
  • a memory operation program that causes a computer to generate write data or read data in consideration of probability failure by using random numbers.
  • By using the first random number it is possible to generate write data in which probability failure is taken into consideration.
  • the write data or the read data in consideration of the probability error is generated by using the random number. Therefore, the error occurrence becomes probabilistic and the soft error can be reproduced.
  • the write data in which the stochastic error is taken into consideration is generated by using the first random number, and the second aspect is generated. Since the read data in consideration of the probability failure is generated by using the random number of 2, the error occurrence becomes probabilistic and the soft error can be reproduced.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本開示の一側面に係るメモリシステムは、乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成するソフトエラー発生部を備えている。

Description

メモリシステムおよびメモリ動作プログラム
 本開示は、メモリシステムおよびメモリ動作プログラムに関する。
 不揮発性メモリセルアレイにおいて、ある不揮発性メモリが断線していたり、短絡していたりした場合、その不揮発性メモリから読み出したデータは常に同じ値になる。このようなアドレス固有の不良のことを固定不良(ハード不良)と呼ぶ。従来では、ハード不良を再現するエラー発生器についての発明が提案されている(例えば、特許文献1~3参照)。
特開2008-090646号公報 特開2008-181609号公報 特開2008-217848号公報
 しかし、不揮発性メモリセルアレイでは、同一条件で繰り返し書き込みを行った場合に、ごくまれに、抵抗変化素子に正しい書き込みができないことがある。このような不良のことを確立不良(ソフトエラー)と呼ぶ。上記特許文献1~3に記載の発明では、このようなソフトエラーを再現することができず、ソフトエラーに対する訂正機能の検証することができないという問題があった。従って、ソフトエラーを再現することの可能なメモリシステムおよびメモリ動作プログラムを提供することが望ましい。
 本開示の第1の側面に係るメモリシステムは、乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成するソフトエラー発生部を備えている。
 本開示の第2の側面に係るメモリ動作プログラムは、乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成することをコンピュータに実行させる。
 本開示の第1の側面に係るメモリシステム、および本開示の第2の側面に係るメモリ動作プログラムでは、乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータが生成される。ここで、エラーが発生するか否かは、乱数に依ってランダムに変わる。そのため、エラー発生は確率的となり、ソフトエラーを再現することができる。
 本開示の第3の側面に係るメモリシステムは、第1のソフトエラー発生部と、第2のソフトエラー発生部とを備えている。第1のソフトエラー発生部は、第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成する。第2のソフトエラー発生部は、第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成する。
 本開示の第4の側面に係るメモリ動作プログラムは、第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成することと、第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成することをコンピュータに実行させる。
 本開示の第3の側面に係るメモリシステム、および本開示の第4の側面に係るメモリ動作プログラムでは、第1の乱数を用いることにより確率不良が考慮された書き込みデータが生成され、第2の乱数を用いることにより確率不良が考慮された読み出しデータが生成される。ここで、エラーが発生するか否かは、乱数に依ってランダムに変わる。そのため、エラー発生は確率的となり、ソフトエラーを再現することができる。
一実施の形態に係る情報処理システムの機能ブロックの一例を表す図である。 図1のメモリセルアレイユニットの機能ブロックの一例を表す図である。 図2のソフトエラー発生器の機能ブロックの一例を表す図である。 図1のメモリセルアレイユニットにおける書き込み動作の一例を表す図である。 図1のメモリセルアレイユニットの機能ブロックの一変形例を表す図である。 図5のソフトエラー発生器の機能ブロックの一例を表す図である。 図5のメモリセルアレイユニットにおける読み出し動作の一例を表す図である。 図5のメモリセルアレイユニットの機能ブロックの一変形例を表す図である。 図5のメモリセルアレイユニットを制御するメモリコントローラの一変形例を表す図である。 図9のメモリコントローラにおける訂正書き戻し動作の一例を表す図である。 図1のメモリセルアレイユニットの機能ブロックの一変形例を表す図である。 図5のメモリセルアレイユニットの機能ブロックの一変形例を表す図である。
 以下、本開示を実施するための形態について、図面を参照して詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
<実施の形態>
[構成]
 図1は、一実施の形態に係る情報処理システムの機能ブロックの一例を表したものである。この情報処理システムは、ホストコンピュータ100およびメモリ部200を備えている。メモリ部200は、メモリコントローラ300、1または複数のメモリセルアレイユニット400および電源部500を備えている。なお、図1には、1つのメモリセルアレイユニット400が設けられている様子が例示されている。
(ホストコンピュータ100)
 ホストコンピュータ100は、メモリ部200を制御する。具体的には、ホストコンピュータ100は、アクセス先の論理アドレスを指定するコマンドを発行して、そのコマンドやデータをメモリ部200に供給する。ホストコンピュータ100は、メモリ部200から出力されたデータを受け取る。ここで、コマンドは、メモリ部200を制御するためのものであり、例えば、データの書き込み処理を指示するライトコマンド、データの読み出し処理を指示するリードコマンド、または、データの消去処理を指示するリセットコマンドを含む。また、論理アドレスは、ホストコンピュータ100が定義するアドレス空間において、ホストコンピュータ100がメモリ部200にアクセスする際のアクセス単位の領域ごとに割り振られたアドレスである。
(メモリコントローラ300)
 メモリコントローラ300は、1または複数のメモリセルアレイユニット400を制御する。メモリコントローラ300は、ホストコンピュータ100から、論理アドレスを指定するライトコマンドを受け取る。また、メモリコントローラ300は、ライトコマンドに従って、データの書き込み処理を実行する。この書き込み処理においては、論理アドレスが物理アドレスに変換され、その物理アドレスにデータが書き込まれる。ここで、物理アドレスは、メモリコントローラ300が1または複数のメモリセルアレイユニット400にアクセスする際のアクセス単位ごとに1または複数のメモリセルアレイユニット400において割り振られたアドレスである。メモリコントローラ300は、論理アドレスを指定するリードコマンドを受け取ると、その論理アドレスを物理アドレスに変換し、その物理アドレスからデータを読み出す。そして、メモリコントローラ300は、読み出したデータをリードデータとしてホストコンピュータ100に出力する。また、メモリコントローラ300は、ホストコンピュータ100から、論理アドレスを指定するリセットコマンドを受け取ると、その論理アドレスを物理アドレスに変換し、その物理アドレスに書き込まれたデータを消去する。
(電源部500)
 電源部500は、1または複数のメモリセルアレイユニット400に対して所望の電圧を供給するものである。電源部500は、例えば、後述のワード線選択部22に対して、書き込み時または読み出し時に用いる電圧などを供給する。電源部500は、例えば、後述のコマンド制御部23に対して、書き込み時または読み出し時に用いる電圧などを供給する。
(メモリセルアレイユニット400)
 次に、メモリセルアレイユニット400について説明する。図2は、メモリセルアレイユニット400の機能ブロックの一例を表したものである。メモリセルアレイユニット400は、例えば、半導体チップで構成されている。メモリセルアレイユニット400は、例えば、メモリセルアレイ10および駆動部20を有している。駆動部20は、例えば、メモリコントローラ300との間で、コマンド、ライトデータおよびリードデータなどをやりとりする。駆動部20は、例えば、ライトコマンドに従って、メモリセルアレイ10にデータを書き込み、リードコマンドに従って、メモリセルアレイ10からデータを読み出す。
 駆動部20が、本開示の「メモリシステム」「メモリ動作プログラム」の一具体例に相当する。駆動部20が本開示の「メモリシステム」の一具体例に相当する場合、駆動部20は、駆動部20の機能を実現するハードウェアによって構成される。駆動部20が本開示の「メモリ動作プログラム」の一具体例に相当する場合、駆動部20は、例えば、DRAM(Dynamic Random Access Memory)などの揮発性メモリ、または、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどの不揮発性メモリに格納され、CPU(Central Processing Unit)に駆動部20がロードされることにより、CPUが駆動部20の機能を実現する。
(メモリセルアレイ10)
メモリセルアレイ10は、例えば、いわゆるSTT-MRAM(Spin Transfer Torque Magnetic Random Access Memory)である。メモリセルアレイ10は、複数のメモリセルMCを有している。メモリセルMCは、抵抗変化素子と、抵抗変化素子に流す電流を制御するスイッチ素子とを含む。
 抵抗変化素子は、例えば、磁気トンネル接合を含む記憶素子である。抵抗変化素子は、例えば、固定層(RL)および自由層(FL)を有しており、固定層(RL)と自由層(FL)との間に極薄のトンネル絶縁膜層を有している。抵抗変化素子では、自由層(FL)の磁化の方向を変えることで、記憶するデータ(電気抵抗値)が書き換えられる。抵抗変化素子では、自由層(FL)の磁化の方向を変えるときに、スピンの向きのそろった電子が磁気抵抗変化素子MTJに注入される。注入電子のスピンは自由層(FL)の電子スピンと反対向きなので、注入電子のスピンによるトルクが自由層(FL)の電子スピンを動かすトルクとなり、最終的には自由層(FL)の電子スピンの向きが反転される(磁化反転)。
 メモリセルアレイ10は、例えば、複数のワード線WLと、複数のビット線BLと、ワード線WLとビット線BLとが互いに対向する位置ごとに1つずつ配置された複数のメモリセルMCと、複数のソース線SLとを有している。メモリセルアレイ10では、外部からのアドレス入力によって指定されるメモリセルMCにデータを書き込むことができる。また、アドレス入力により指定されるメモリセルMCに記憶されたデータを読み出すことができる。メモリセルMCに記憶されるデータ値は抵抗変化素子の抵抗状態で区別される。例えば、高抵抗状態であれば「1」と区別され、低抵抗状態であれば「0」と区別される。なお、論理データに対する物理状態は上記に限定されるものではなく、例えば、高抵抗状態であれば「0」と区別され、低抵抗状態であれば「1」と区別されてもよい。また、論理データに対する物理状態はアドレスごとに変わってもよい。
(駆動部20)
 次に、駆動部20について説明する。駆動部20は、例えば、図2に示したように、アドレス制御部21、ワード線選択部22、コマンド制御部23、ソフトエラー発生器24、書き込み制御部25、ビット線選択部26および読み出し制御部27を有している。
 アドレス制御部21は、アドレス線から入力された行アドレス応じた制御信号をワード線選択部22に出力するとともに、アドレス線から入力された列アドレスに応じた制御信号をビット線選択部26に出力する。アドレス制御部21は、ワード線選択部22およびビット線選択部26に対して出力電圧を変更するタイミングを制御する信号を出力する。ワード線選択部22は、書き込み、読み出しまたはリセットの動作を行う際に、書き込み、読み出しまたはリセットの動作に必要な所定の電圧で各ワード線WLをドライブする回路を含んでいる。ワード線選択部22は、メモリセルアレイ10の各ワード線WLに接続され、アドレス線から入力された行アドレスに応じたワード線WLを選択する。ワード線選択部22は、選択したワード線WLに対して、書き込み、読み出しまたはリセットの動作に必要な所定の電圧を出力する。
 ビット線選択部26は、データ「0」を書き込む動作を行う際、例えば、メモリセルMCの抵抗変化素子の状態を高抵抗状態もしくは低抵抗状態から低抵抗状態にする動作を行う際に、データ「0」を書き込むメモリセルMCに接続されたビット線BLをデータ「0」の書き込み動作に必要な所定の電圧でドライブする回路を含んでいる。ビット線選択部26は、さらに、データ「1」を書き込む動作を行う際、例えば、メモリセルMCの抵抗変化素子の状態を高抵抗状態もしくは低抵抗状態から高抵抗状態にする動作を行う際に、データ「1」を書き込むメモリセルMCに接続されたビット線BLをデータ「1」の書き込み動作に必要な所定の電圧でドライブする回路を含んでいる。ビット線選択部26は、さらに、データを読み出す動作を行う際に、データを読み出すメモリセルMCに接続されたビット線BLをデータの書き換えが生じない所定の電圧でドライブする回路を含んでいる。
 ビット線選択部26は、メモリセルアレイ10の各ビット線BLに接続され、アドレス線から入力された列アドレスによって、対応するビット線BLを選択する。ビット線選択部26は、選択したビット線BLに対して、書き込み、読み出しまたはリセットの動作に必要な所定の電圧を出力する。
 コマンド制御部23は、入力されたコマンドに応じて、ワード線選択部22、ソフトエラー発生器24、書き込み制御部25および読み出し制御部27を制御する。例えば、ライトコマンドが入力された場合には、コマンド制御部23は、ソフトエラー発生器24に対して、ソフトエラーを含む書き込みデータDwの生成を指示する。ソフトエラー発生器24は、メモリコントローラ300から入力されたデータ(入力データDin)に基づいて、ソフトエラーを含む書き込みデータDwを生成する。
 コマンド制御部23は、さらに、書き込み制御部25に対して、ソフトエラー発生器24から入力された書き込みデータDwを所定のタイミングでビット線選択部26に出力することを指示し、ワード線選択部22に対して、所定のタイミングでメモリセルアレイ10を走査するよう指示する。書き込み制御部25は、ソフトエラー発生器24から入力された書き込みデータDwを所定のタイミングでビット線選択部26に出力する。コマンド制御部23は、さらに、読み出し制御部27に対して、書き込んだデータをメモリセルアレイ10から読み出すことを指示する。読み出し制御部27は、読みだしたデータ(読み出しデータDr)を出力データDoutとしてメモリコントローラ300に出力する。
 図3は、ソフトエラー発生器24の機能ブロックの一例を表したものである。ソフトエラー発生器24は、例えば、図3に示したように、乱数発生器24aと、確率不良レジスタ24bと、MOD演算器24cと、XOR演算器24dとを有している。
 乱数発生器24aは、ライトコマンドWCの取得をトリガーに乱数D1を発生する。乱数発生器24aは、例えば、特開2001-344094に記載の方法で乱数D1を発生する。確率不良レジスタ24bは、ソフトエラー生成のためのレジスタ値D2が規定されたレジスタである。レジスタ値D2は、確率不良レジスタ24bに格納された固定値である。MOD演算器24cは、乱数発生器24aで生成された乱数D1と、確率不良レジスタ24bから読み出したレジスタ値D2とを用いて剰余演算(D1%D2)を行い、それにより得られた余りD3をXOR演算器24dに出力する。XOR演算器24dは、MOD演算器24cから入力された余りD3と、メモリコントローラ300から入力されたデータ(入力データDin)とに対して、XOR演算を行い、それにより得られた値を書き込みデータDwとして書き込み制御部25に出力する。書き込みデータDwには、ソフトエラーが含まれている場合もあるし、ソフトエラーが含まれていない場合もある。書き込みデータDwにソフトエラーが含まれていない場合には、書き込みデータDwは、入力データDinと等しい。つまり、書き込みデータDwは、確率不良が考慮されたデータであると言える。
 次に、メモリセルアレイユニット400における書き込み動作について説明する。図4は、メモリセルアレイユニット400における書き込み動作の一例を表したものである。まず、乱数発生器24aは、メモリコントローラ300(コマンド制御部23)からライトコマンドWCを取得すると、ライトコマンドWCの取得をトリガーに乱数D1を発生する(ステップS101,S102)。次に、MOD演算器24cは、乱数発生器24aで生成された乱数D1と、確率不良レジスタ24bから読み出したレジスタ値D2とを用いて剰余演算(D1%D2)を行う(ステップS103)。その結果、余りD3が得られる。MOD演算器24cは、得られた余りD3をXOR演算器24dに出力する。
 XOR演算器24dは、MOD演算器24cから余りD3を取得すると、余りD3の取得をトリガーにXOR演算を行う(ステップS104)。具体的には、XOR演算器24dは、MOD演算器24cから入力された余りD3と、メモリコントローラ300から入力されたデータ(入力データDin)とに対して、XOR演算を行う。XOR演算器24dは、それにより得られた値を書き込みデータDwとして書き込み制御部25に出力する。
 書き込み制御部25は、ソフトエラー発生器24から入力された書き込みデータDwを所定のタイミングでビット線選択部26に出力する。ワード線選択部22およびビット線選択部26は、アドレス制御部21によるタイミング制御および印可電圧制御に従って、書き込みデータDwをメモリセルアレイ10の所定のアドレスに記憶させる(ステップS105)。その後、ビット線選択部26は、必要に応じて、メモリセルアレイ10の所定のアドレスから、書き込みデータDwを読み出す。読み出し制御部27は、ビット線選択部26で得られた書き込みデータDwを出力データDoutとしてメモリコントローラ300に出力する。このようにして、メモリセルアレイユニット400における書き込み動作が行われる。
[効果]
 次に、本実施の形態に係る情報処理システムの効果について説明する。
 不揮発性メモリセルアレイにおいて、ある不揮発性メモリが断線していたり、短絡していたりした場合、その不揮発性メモリから読み出したデータは常に同じ値になる。このようなアドレス固有の不良のことを固定不良(ハード不良)と呼ぶ。従来では、ハード不良を再現するエラー発生器についての発明が上記特許文献1~3で提案されている。
 しかし、不揮発性メモリセルアレイでは、同一条件で繰り返し書き込みを行った場合に、ごくまれに、抵抗変化素子に正しい書き込みができないことがある。このような不良のことを確立不良(ソフトエラー)と呼ぶ。上記特許文献1~3に記載の発明では、このようなソフトエラーを再現することができず、ソフトエラーに対する訂正機能の検証することができないという問題があった。
 一方、本実施の形態では、乱数D1を用いることによりソフトエラーが考慮された書き込みデータDwが生成される。ここで、エラーが発生するか否かは、乱数D1に依ってランダムに変わる。そのため、エラー発生は確率的となり、ソフトエラーを再現することができる。従って、メモリセルアレイ10に対する書き込みの成功確率を再現することができる。なお、例えば、このようにして生成された書き込みデータDwをメモリセルアレイ10に記憶させ、その後、改めて、メモリセルアレイ10から読み出した書き込みデータDwを利用して、ソフトエラーに対する訂正機能の検証を行うことができる。
 また、本実施の形態では、乱数D1とレジスタ値D2(固定値)とを用いて剰余演算が行われ、それにより得られた余りD3と、入力データDinを用いて書き込みデータDwが生成される。これにより、エラー発生を確率的に生じさせることができ、ソフトエラーを再現することができる。
 また、本実施の形態では、余りD3と入力データDinと用いてXOR演算が行われ、それにより得られた値が書き込みデータDwとなる。これにより、エラー発生を確率的に生じさせることができ、ソフトエラーを再現することができる。
<変形例>
 次に、上記実施の形態に係る情報処理システムの変形例について説明する。
[変形例A]
 図5は、上記実施の形態に係るメモリセルアレイユニット400の一変形例を表したものである。本変形例では、上記実施の形態に係るメモリセルアレイユニット400において、ソフトエラー発生器24が省略され、ソフトエラー発生器28および書き戻し制御部29が追加されている。
 図6は、ソフトエラー発生器28の機能ブロックの一例を表したものである。ソフトエラー発生器28は、例えば、図6に示したように、乱数発生器28aと、確率不良レジスタ28bと、MOD演算器28cと、XOR演算器28dとを有している。
 乱数発生器28aは、リードコマンドRCの取得をトリガーに乱数D4を発生する。乱数発生器28aは、例えば、特開2001-344094に記載の方法で乱数D4を発生する。確率不良レジスタ28bは、ソフトエラー生成のためのレジスタ値D5が規定されたレジスタである。MOD演算器28cは、乱数発生器28aで生成された乱数D4と、確率不良レジスタ28bから読み出したレジスタ値D5とを用いて剰余演算(D4%D5)を行い、それにより得られた余りD6をXOR演算器28dに出力する。XOR演算器28dは、MOD演算器28cから入力された余りD6と、ビット線選択部26によってメモリセルアレイ10から読み出されたデータ(読み出しデータDr1)とに対して、XOR演算を行い、それにより得られた値を読み出しデータDr2として読み出し制御部27に出力する。読み出しデータDr2には、ソフトエラーが含まれている場合もあるし、ソフトエラーが含まれていない場合もある。読み出しデータDr2にソフトエラーが含まれていない場合には、読み出しデータDr2は、読み出しデータDr1と等しい。
 読み出しデータDr1は、駆動部20によってメモリセルアレイ10に書き込まれたデータである。読み出しデータDr1は、例えば、メモリコントローラ300から入力された入力データDinである。
 本変形例では、読み出し制御部27は、ソフトエラー発生器28から入力されたデータ(読み出しデータDr2)を出力データDoutとしてメモリコントローラ300に出力する。書き戻し制御部29は、ソフトエラー発生器28から出力されたデータ(読み出しデータDr2)を書き込み制御部25に出力する。書き込み制御部25は、書き戻し制御部29から読み出しデータDr2が入力されると、読み出しデータDr2の取得をトリガーに、読み出しデータDr2を、読み出しデータDr1に上書きするようにメモリセルアレイに書き込む。
 次に、メモリセルアレイユニット400における読み出し動作について説明する。図7は、メモリセルアレイユニット400における読み出し動作の一例を表したものである。まず、乱数発生器28aは、メモリコントローラ300(コマンド制御部23)からリードコマンドRCを取得すると、リードコマンドRCの取得をトリガーに乱数D4を発生する(ステップS201,S202)。次に、MOD演算器28cは、乱数発生器28aで生成された乱数D4と、確率不良レジスタ28bから読み出したレジスタ値D5とを用いて剰余演算(D4%D5)を行う(ステップS203)。その結果、余りD6が得られる。MOD演算器28cは、得られた余りD4をXOR演算器28dに出力する。
 XOR演算器28dは、MOD演算器28cから余りD6を取得すると、余りD6の取得をトリガーにXOR演算を行う(ステップS204)。具体的には、XOR演算器28dは、MOD演算器28cから入力された余りD6と、ビット線選択部26によってメモリセルアレイ10から読み出されたデータ(読み出しデータDr1)とに対して、XOR演算を行う。XOR演算器28dは、それにより得られた値を読み出しデータDr2として読み出し制御部27および書き戻し制御部29に出力する。
 読み出し制御部27は、ソフトエラー発生器28から入力されたデータ(読み出しデータDr2)を出力データDoutとしてメモリコントローラ300に出力する(ステップS205)。書き戻し制御部29は、ソフトエラー発生器28から入力されたデータ(読み出しデータDr2)を書き込み制御部25に出力する。書き込み制御部25は、書き戻し制御部29から読み出しデータDr2が入力されると、読み出しデータDr2の取得をトリガーに、読み出しデータDr2を、読み出しデータDr1に上書きするようにメモリセルアレイ10に書き込む。これにより、読み出しデータDr2の書き戻しが行われる(ステップS206)。このようにして、メモリセルアレイユニット400における読み出し動作が行われる。
 本変形例では、乱数D4を用いることによりソフトエラーが考慮された読み出しデータDr2が生成される。ここで、エラーが発生するか否かは、乱数D4に依ってランダムに変わる。そのため、エラー発生は確率的となり、ソフトエラーを再現することができる。従って、メモリセルアレイ10における保持データの消失確率と、メモリセルアレイ10から保持データを読み出す際にメモリセルアレイ10に流す読み出し電流に起因する誤書き込みの確率とを再現することができる。ところで、ソフトエラーの1つである、外乱(例えば外部磁場など)によるデータ破壊が生じた場合、読み出し動作の再実行ではソフトエラーを解消することができない。一方、本変形例では、エラーが訂正された正しいデータがメモリセルアレイ10に書き込まれる。これにより、ソフトエラーを解消することができる。
 また、本変形例では、乱数D4とレジスタ値D5(固定値)とを用いて剰余演算が行われ、それにより得られた余りD6と、読み出しデータDr1を用いて読み出しデータDr2が生成される。これにより、エラー発生を確率的に生じさせることができ、ソフトエラーを再現することができる。
 また、本変形例では、余りD6と読み出しデータDr1と用いてXOR演算が行われ、それにより得られた値が読み出しデータDr2となる。これにより、エラー発生を確率的に生じさせることができ、ソフトエラーを再現することができる。
 また、本変形例では、読み出しデータDr2が、読み出しデータDr1に上書きするようにメモリセルアレイ10に書き込まれる。これにより、改めて、メモリセルアレイ10から読み出しデータDr2を読み出し、読み出した読み出しデータDr2を利用して、ソフトエラーに対する訂正機能の検証を行うことができる。ところで、ソフトエラーの1つである、外乱(例えば外部磁場など)によるデータ破壊が生じた場合、読み出し動作の再実行ではソフトエラーを解消することができない。一方、本変形例では、エラーが訂正された正しいデータがメモリセルアレイ10に書き込まれる。これにより、ソフトエラーを解消することができる。
[変形例B]
 図8は、上記変形例Aに係るメモリセルアレイユニット400の一変形例を表したものである。本変形例では、上記変形例Aに係るメモリセルアレイユニット400において、ソフトエラー発生器24が追加されている。
 本変形例では、ソフトエラー発生器24によって、書き込み時のソフトエラーが含まれ得るデータ(書き込みデータDw)が生成され、生成された書き込みデータDwが、書き込み制御部25およびビット線選択部26によってメモリセルアレイ10に記憶される。メモリセルアレイ10に記憶された書き込みデータDwが、読み出しデータDr1としてビット線選択部26によってメモリセルアレイ10から読み出される。メモリセルアレイ10から読み出された読み出しデータDr1とが、ソフトエラー発生器28によって、読み出し時のソフトエラーが含まれ得るデータ(読み出しデータDr2)が生成される。
 これにより、メモリセルアレイ10に対する書き込みの成功確率と、メモリセルアレイ10における保持データの消失確率と、メモリセルアレイ10から保持データを読み出す際にメモリセルアレイ10に流す読み出し電流に起因する誤書き込みの確率とを再現することができる。ところで、ソフトエラーの1つである、外乱(例えば外部磁場など)によるデータ破壊が生じた場合、読み出し動作の再実行ではソフトエラーを解消することができない。一方、本変形例では、エラーが訂正された正しいデータがメモリセルアレイ10に書き込まれる。これにより、ソフトエラーを解消することができる。
[変形例C]
 図9は、上記変形例Aに係るメモリセルアレイユニット400を制御するメモリコントローラ300の一変形例を表したものである。本変形例では、メモリコントローラ300は、例えば、図9に示したように、訂正部31および書き戻し制御部32を有している。
 訂正部31は、例えば、メモリセルアレイユニット400(読み出し制御部27)から入力された出力データDoutと、メモリセルアレイユニット400(書き込み制御部25)に出力した入力データDinとを対比して、出力データDoutにおける誤りの有無を判断する。訂正部31は、出力データDoutに誤りがあると判断した場合には、例えば、出力データDoutに含まれる誤り訂正符号(例えば、ECC(Error Correction Code)パリティ)を用いて、出力データDoutを訂正する。訂正部31は、訂正により得られたデータ(訂正データDc)を書き戻し制御部32に出力する。書き戻し制御部32は、訂正部31から入力された訂正データDcをメモリセルアレイユニット400(書き込み制御部25)に出力する。
 書き込み制御部25は、メモリコントローラ300から訂正データDcが入力されると、入力された訂正データDcを、書き込みデータDwとしてビット線選択部26に出力する。ビット線選択部26は、書き込み制御部25から入力された書き込みデータDwを、読み出しデータDr1に上書きするようにメモリセルアレイ10に書き込み、これにより、訂正書き戻しを行う。
 次に、メモリコントローラ300における訂正書き戻し動作について説明する。図10は、メモリセルアレイユニット400における読み出し動作の一例と、メモリコントローラ300における訂正書き戻し動作の一例とを表したものである。まず、メモリセルアレイユニット400は、上述のステップS201~S206までを実行する。
 続いて、メモリコントローラ300において、訂正部31は、例えば、メモリセルアレイユニット400(読み出し制御部27)から入力された出力データDoutと、メモリセルアレイユニット400(書き込み制御部25)に出力した入力データDinとを対比して、出力データDoutにおける誤りの有無を判断する(ステップS207)。訂正部31は、出力データDoutに誤りがないと判断した場合(ステップS207;N)には、訂正書き戻し動作を終了するとともに、読み出し動作を終了する。
 一方、訂正部31は、出力データDoutに誤りがあると判断した場合(ステップS207;Y)には、例えば、出力データDoutに含まれる誤り訂正符号を用いて、出力データDoutを訂正し、それにより、訂正データDcを生成する(ステップS208)。訂正部31は、訂正により得られた訂正データDcを書き戻し制御部32に出力する。書き戻し制御部32は、訂正部31から入力された訂正データDcをメモリセルアレイユニット400(書き込み制御部25)に出力する。
 書き込み制御部25は、メモリコントローラ300から訂正データDcが入力されると、入力された訂正データDcを、書き込みデータDwとしてビット線選択部26に出力する。ビット線選択部26は、書き込み制御部25から入力された書き込みデータDwを、読み出しデータDr1に上書きするようにメモリセルアレイ10に書き込み、これにより、訂正書き戻しを行う(ステップS209)。
 本変形例では、出力データDoutに誤りがある場合には、誤り訂正のなされたデータ(訂正データDc)が、読み出しデータDr1に上書きするようにメモリセルアレイ10に書き込まれる。これにより、ソフトエラーの無いデータをソフトエラー発生器28に与えることができるので、例えば、ソフトエラーに対する訂正機能の検証を行うことができる。
[変形例D]
 図11は、上記実施の形態に係るメモリセルアレイユニット400の一変形例を表したものである。本変形例では、メモリセルアレイユニット400において、ソフトエラー発生器24が省略され、ソフトエラー発生器24と同様の機能を有するソフトエラー発生器410がメモリセルアレイユニット400とは別体で設けられている。このとき、駆動部20およびソフトエラー発生器410が、本開示の「メモリシステム」「メモリ動作プログラム」の一具体例に相当する。
 このようにした場合には、ユーザにとって不要なソフトエラー発生器410を、メモリセルアレイユニット400に搭載する必要がなくなる。また、ソフトエラー発生器410の修正(例えば、乱数生成アルゴリズムの変更)が必要となった場合に、メモリセルアレイユニット400を作り直す必要がなくなり、修正コストを低減することができる。
 また、本変形例では、ソフトエラー発生器410がメモリセルアレイユニット400とは別体で設けられていることにより、ソフトエラー発生器410をソフトウェア(プログラム)で構成し、駆動部20をハードウェアで構成することも可能となる。この場合、例えば、ソフトウェア(プログラム)であるソフトエラー発生器410がインストールされた情報処理装置を用いてメモリセルアレイユニット400の動作を制御する。
[変形例E]
 図12は、上記変形例Aに係るメモリセルアレイユニット400の一変形例を表したものである。本変形例では、メモリセルアレイユニット400において、ソフトエラー発生器28および書き戻し制御部29が省略され、ソフトエラー発生器28と同様の機能を有するソフトエラー発生器420と、書き戻し制御部29と同様の機能を有する書き戻し制御部430とがメモリセルアレイユニット400とは別体で設けられている。このとき、駆動部20、ソフトエラー発生器420および書き戻し制御部430が、本開示の「メモリシステム」「メモリ動作プログラム」の一具体例に相当する。
 このようにした場合には、ユーザにとって不要なソフトエラー発生器420および書き戻し制御部430を、メモリセルアレイユニット400に搭載する必要がなくなる。また、ソフトエラー発生器420の修正(例えば、乱数生成アルゴリズムの変更)が必要となった場合に、メモリセルアレイユニット400を作り直す必要がなくなり、修正コストを低減することができる。
 また、本変形例では、ソフトエラー発生器420および書き戻し制御部430がメモリセルアレイユニット400とは別体で設けられていることにより、ソフトエラー発生器420および書き戻し制御部430をソフトウェア(プログラム)で構成し、駆動部20をハードウェアで構成することも可能となる。この場合、例えば、ソフトウェア(プログラム)であるソフトエラー発生器420および書き戻し制御部430がインストールされた情報処理装置を用いてメモリセルアレイユニット400の動作を制御する。
 以上、実施の形態およびその変形例を挙げて本開示を説明したが、本開示は上記実施の形態等に限定されるものではなく、種々変形が可能である。上記実施の形態等では、メモリセルアレイ10はSTT-MRAMとなっていた。しかし、上記実施の形態等において、メモリセルアレイ10はSTT-MRAMとは異なるMRAMであってもよく、MRAMとは異なる不揮発性メモリであってもよい。
 なお、本明細書中に記載された効果は、あくまで例示である。本開示の効果は、本明細書中に記載された効果に限定されるものではない。本開示が、本明細書中に記載された効果以外の効果を持っていてもよい。
 また、例えば、本開示は以下のような構成を取ることができる。
(1)
 乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成するソフトエラー発生部を備えた
 メモリシステム。
(2)
 前記ソフトエラー発生部は、乱数と固定値とを用いて剰余演算を行い、それにより得られた余りと、入力データとを用いて前記書き込みデータを生成する
 (1)に記載のメモリシステム。
(3)
 前記ソフトエラー発生部は、乱数と固定値とを用いて剰余演算を行い、それにより得られた余りと、メモリから読み出したデータとを用いて前記読み出しデータを生成する
 (1)に記載のメモリシステム。
(4)
 前記ソフトエラー発生部は、
 前記乱数を発生する乱数発生部と、
 前記固定値が規定されたレジスタと、
 前記剰余演算を行う第1演算部と、
 前記書き込みデータを生成する第2演算部と
 を含んで構成される
 (2)に記載のメモリシステム。
(5)
 前記第2演算部は、前記余りと前記入力データと用いてXOR演算を行い、それにより得られた値を前記書き込みデータとする
 (4)に記載のメモリシステム。
(6)
 前記ソフトエラー発生部は、
 前記乱数を発生する乱数発生部と、
 前記固定値が規定されたレジスタと、
 前記剰余演算を行う第1演算部と、
 前記読み出しデータを生成する第2演算部と
 を含んで構成される
 (3)に記載のメモリシステム。
(7)
 前記第2演算部は、前記余りと前記入力データと用いてXOR演算を行い、それにより得られた値を前記読み出しデータとする
 (6)に記載のメモリシステム。
(8)
 前記読み出しデータを前記メモリデータに上書きするように前記メモリに書き込む書き込み部を更に備えた
 (3)に記載のメモリシステム。
(9)
 メモリと、
 前記書き込みデータを前記メモリに書き込む書き込み制御部と
 を更に備えた
 (2)に記載のメモリシステム。
(10)
 前記メモリと、
 前記読み出しデータを前記メモリに書き込む書き込み制御部と、
 前記読み出しデータを前記メモリから読み出す読み出し制御部と
 を更に備えた
 (3)に記載のメモリシステム。
(11)
 第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成する第1のソフトエラー発生部と、
 第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成する第2のソフトエラー発生部と
 を備えた
 メモリシステム。
(12)
 前記第1のソフトエラー発生部は、前記第1の乱数と第1の固定値とを用いて剰余演算を行い、それにより得られた第1の余りと、入力データとを用いて前記書き込みデータを生成し、
 前記第2のソフトエラー発生部は、前記第2の乱数と第2の固定値とを用いて剰余演算を行い、それにより得られた第2の余りと、メモリから読み出したデータとを用いて前記読み出しデータを生成する
 (11)に記載のメモリシステム。
(13)
 乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成することを
 コンピュータに実行させる
 メモリ動作プログラム。
(14)
 第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成することと、
 第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成することと
 をコンピュータに実行させる
 メモリ動作プログラム。
 本開示の第1の側面に係るメモリシステム、および本開示の第2の側面に係るメモリ動作プログラムによれば、乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成するようにしたので、エラー発生は確率的となり、ソフトエラーを再現することができる。
 本開示の第3の側面に係るメモリシステム、および本開示の第4の側面に係るメモリ動作プログラムによれば、第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成し、第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成するようにしたので、エラー発生は確率的となり、ソフトエラーを再現することができる。
 本出願は、日本国特許庁において2020年7月20日に出願された日本特許出願番号第2020-124039を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。
 当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

Claims (12)

  1.  乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成するソフトエラー発生部を備えた
     メモリシステム。
  2.  前記ソフトエラー発生部は、乱数と固定値とを用いて剰余演算を行い、それにより得られた余りと、入力データとを用いて前記書き込みデータを生成する
     請求項1に記載のメモリシステム。
  3.  前記ソフトエラー発生部は、乱数と固定値とを用いて剰余演算を行い、それにより得られた余りと、メモリから読み出したデータとを用いて前記読み出しデータを生成する
     請求項1に記載のメモリシステム。
  4.  前記ソフトエラー発生部は、
     前記乱数を発生する乱数発生部と、
     前記固定値が規定されたレジスタと、
     前記剰余演算を行う第1演算部と、
     前記書き込みデータを生成する第2演算部と
     を含んで構成される
     請求項2に記載のメモリシステム。
  5.  前記第2演算部は、前記余りと前記入力データと用いてXOR演算を行い、それにより得られた値を前記書き込みデータとする
     請求項4に記載のメモリシステム。
  6.  前記ソフトエラー発生部は、
     前記乱数を発生する乱数発生部と、
     前記固定値が規定されたレジスタと、
     前記剰余演算を行う第1演算部と、
     前記読み出しデータを生成する第2演算部と
     を含んで構成される
     請求項3に記載のメモリシステム。
  7.  前記第2演算部は、前記余りと前記入力データと用いてXOR演算を行い、それにより得られた値を前記読み出しデータとする
     請求項6に記載のメモリシステム。
  8.  前記読み出しデータを前記メモリデータに上書きするように前記メモリに書き込む書き込み部を更に備えた
     請求項3に記載のメモリシステム。
  9.  第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成する第1のソフトエラー発生部と、
     第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成する第2のソフトエラー発生部と
     を備えた
     メモリシステム。
  10.  前記第1のソフトエラー発生部は、前記第1の乱数と第1の固定値とを用いて剰余演算を行い、それにより得られた第1の余りと、入力データとを用いて前記書き込みデータを生成し、
     前記第2のソフトエラー発生部は、前記第2の乱数と第2の固定値とを用いて剰余演算を行い、それにより得られた第2の余りと、メモリから読み出したデータとを用いて前記読み出しデータを生成する
     請求項9に記載のメモリシステム。
  11.  乱数を用いることにより確率不良が考慮された書き込みデータもしくは読み出しデータを生成することを
     コンピュータに実行させる
     メモリ動作プログラム。
  12.  第1の乱数を用いることにより確率不良が考慮された書き込みデータを生成することと、
     第2の乱数を用いることにより確率不良が考慮された読み出しデータを生成することと
     をコンピュータに実行させる
     メモリ動作プログラム。
PCT/JP2021/019164 2020-07-20 2021-05-20 メモリシステムおよびメモリ動作プログラム WO2022018950A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180060993.XA CN116134425A (zh) 2020-07-20 2021-05-20 存储器系统和存储器操作程序
US18/005,046 US20230260587A1 (en) 2020-07-20 2021-05-20 Memory system and memory operation program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020124039A JP2022020504A (ja) 2020-07-20 2020-07-20 メモリシステムおよびメモリ動作プログラム
JP2020-124039 2020-07-20

Publications (1)

Publication Number Publication Date
WO2022018950A1 true WO2022018950A1 (ja) 2022-01-27

Family

ID=79728651

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/019164 WO2022018950A1 (ja) 2020-07-20 2021-05-20 メモリシステムおよびメモリ動作プログラム

Country Status (5)

Country Link
US (1) US20230260587A1 (ja)
JP (1) JP2022020504A (ja)
CN (1) CN116134425A (ja)
TW (1) TW202209337A (ja)
WO (1) WO2022018950A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078431A (ja) * 2003-09-01 2005-03-24 Toshiba Corp 半導体装置
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078431A (ja) * 2003-09-01 2005-03-24 Toshiba Corp 半導体装置
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置

Also Published As

Publication number Publication date
US20230260587A1 (en) 2023-08-17
JP2022020504A (ja) 2022-02-01
TW202209337A (zh) 2022-03-01
CN116134425A (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
US10459794B2 (en) Memory systems having extended product lifetime and methods of operating the same
US7757153B2 (en) Multi-bit memory device and memory system
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8321765B2 (en) Method of reading data in non-volatile memory device
KR102002925B1 (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US8281221B2 (en) Operation method of MRAM including correcting data for single-bit error and multi-bit error
US7296128B2 (en) Nonvolatile memory with error correction for page copy operation and method thereof
US8732553B2 (en) Memory system and control method thereof
JP5492679B2 (ja) 記憶装置およびメモリコントローラ
JP2009087509A (ja) 半導体記憶装置
JP5559778B2 (ja) フラッシュメモリにおける高速低電力のデータ読み出し
US7697347B2 (en) Non-volatile memory device and method of driving the same
JP5259138B2 (ja) 記憶装置
US7898866B2 (en) Nonvolatile memory device and method of operating the same
JP2014110071A (ja) エラー訂正パリティビットによるmramスマートビット書き込みアルゴリズムの方法および装置
US10937495B2 (en) Resistive memory apparatus and method for writing data thereof
WO2022018950A1 (ja) メモリシステムおよびメモリ動作プログラム
KR102619353B1 (ko) 고신뢰성을 얻기 위한 메모리의 동작 방법 및 이를 구현하기 위한 메모리
US7266732B2 (en) MRAM with controller
US10310742B2 (en) Memory controller, storage apparatus, information processing system, and method for controlling nonvolatile memory
JP7300485B2 (ja) メモリデバイス
WO2021196620A1 (zh) 读写方法及存储器装置
US10922025B2 (en) Nonvolatile memory bad row management
JP2001167596A (ja) 不揮発性半導体記憶装置
WO2023095668A1 (ja) 電子機器

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

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

Country of ref document: EP

Kind code of ref document: A1