WO2016050170A1 - 阻变随机存储器的存储阵列编程方法和装置 - Google Patents

阻变随机存储器的存储阵列编程方法和装置 Download PDF

Info

Publication number
WO2016050170A1
WO2016050170A1 PCT/CN2015/090690 CN2015090690W WO2016050170A1 WO 2016050170 A1 WO2016050170 A1 WO 2016050170A1 CN 2015090690 W CN2015090690 W CN 2015090690W WO 2016050170 A1 WO2016050170 A1 WO 2016050170A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
reset
written
bit
write
Prior art date
Application number
PCT/CN2015/090690
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 US15/515,359 priority Critical patent/US10522221B2/en
Publication of WO2016050170A1 publication Critical patent/WO2016050170A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/82Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials

Definitions

  • the present invention relates to a memory array programming method and apparatus for resistive random access memory.
  • the flash memory requires complicated mask patterns and expensive manufacturing costs, and there are large word line leakage and crosstalk between cells, and the number of electrons in the floating gate is less and less, the size of the flash memory is reduced. It has been greatly restricted, and it is estimated that it will be difficult to continue to develop as it develops to 1z nm. Therefore, emerging non-volatile memory CBRAM, MRAM, PRAM, RRAM, etc. are getting more and more attention.
  • the resistive random access memory RRAM is considered to be the most Flash memory by virtue of high speed, large capacity, low power consumption, low cost and high reliability. A powerful candidate.
  • the RRAM resistive unit changes the resistance state according to the voltage or current applied at both ends (the low resistance state is "1" and the high resistance state is “0"), the resistance in the low resistance state and the high resistance state.
  • the size is very sensitive to the applied voltage or current.
  • the programming method as described above may cause the high resistance state of the memory cell to fail or the low resistance state to fail, so that the data storage capability of the memory cell is weakened and the lifetime is shortened.
  • the present invention provides a memory array programming method for a resistive random access memory, the resistive random access memory including a memory array including a set of memory cells to which data is to be written, the programming method including the following step:
  • step (iii) Verify that there are unsuccessful memory locations in the set or reset operation, and if so, repeat step (ii) above until the end of the write.
  • the present invention provides a memory array programming apparatus for a resistive random access memory, the resistive random access memory including a memory array including a set of memory cells to which data is to be written, the memory array being programmed
  • the device includes:
  • a read/write circuit for reading current storage data of the group of storage units
  • a data comparator configured to compare the current storage data with the data to be written bit by bit, and determine whether the current storage data of the storage unit is consistent with the data to be written;
  • a write data state generation unit that generates a write data state according to a comparison result of the data comparator
  • a reset module which performs a reset operation only on the memory cells to be reset that are inconsistent with the data to be written according to the state of the write data
  • the setting module performs a set operation only on the memory cells to be set that are inconsistent with the data to be written according to the state of the write data.
  • the storage array programming method and apparatus for resistive random access memory of the present invention can avoid repeated writes, not only reduce write interruption to the unit itself, improve unit endurance, but also reduce write power consumption.
  • the present invention also provides a storage array programming method for a resistive random access memory, comprising the following steps:
  • the present invention has the following beneficial technical effects:
  • the present invention utilizes a counter for setting and resetting respectively, and compares and judges the target unit data and the data to be written, and writes only the target data in which the stored data and the data to be written are inconsistent; thereby ensuring programming Only the target data in which the stored data and the data to be written are inconsistent are written to avoid repeated writing, which not only reduces the write interruption to the unit itself, but also improves the unit's endurance, and pre-definitions the maximum number of voltage pulses allowed to be applied. Under the restriction, the efficiency of data reading and writing can be improved, and the write power consumption can be reduced.
  • the classification preparation is performed, so that the state can be clearly and clearly distinguished for different write data states WDS, the rate of writing data is improved, and the judgment execution time is shortened.
  • FIG. 1 is a schematic structural diagram of a 1T1R memory cell in a resistive random access memory in the prior art.
  • FIG. 2 is a schematic circuit block diagram of a memory array programming device for a resistive random access memory in accordance with one embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a 1T1R memory cell based memory array in accordance with one embodiment of the present invention.
  • FIG. 4 is a block flow diagram of a memory array programming method for a resistive random access memory in accordance with one embodiment of the present invention.
  • the present invention provides a memory array programming method for a resistive random access memory, the resistive random access memory including a memory array including a set of memory cells to which data is to be written, the programming method comprising the steps of:
  • step (iii) Verify that there are unsuccessful memory locations in the set or reset operation, and if so, repeat step (ii) above until the end of the write.
  • the write data state includes four states to indicate whether the "0" bit in the data to be written is consistent with a corresponding bit in the currently stored data and a "1" bit in the data to be written and current Whether the corresponding bits in the stored data are consistent.
  • the step (ii) comprises the steps of:
  • write data state indicates that the "0" bit and the "1" bit in the data to be written are not completely identical to the corresponding bits in the currently stored data, then one of the set operation and the reset operation is performed first, Then another operation in the set operation and the reset operation is performed until the end of the write.
  • the method further comprises initializing a set counter and a reset counter prior to step (i) for calculating the number of voltage pulses scnt and rcnt applied during the set and reset operations, wherein 0 ⁇ scnt ⁇ P-1; 0 ⁇ rcnt ⁇ P-1; P represents a predefined maximum number of voltage pulses allowed to be applied.
  • the resetting operation comprises the following steps:
  • the reset source line voltage is reversely applied to the memory cell in a low resistance state to be reset.
  • said step (iii) comprises:
  • the setting operation comprises the following steps:
  • the set bit line voltage is applied in the forward direction to the memory cell in the high impedance state to be set.
  • said step (iii) comprises:
  • the memory cell performing the set operation is read, and it is verified whether R in the memory cell is less than R LRS , where R is the resistance of the memory cell, and R LRS is a low resistance threshold;
  • the write data state indicates that the "0" bit and the "1" bit in the data to be written are not completely identical with the corresponding bits in the currently stored data
  • step D if the first execution is performed Bit operation, the "high" state of the memory cell to be set is written "1" by a set operation; then the write data state is updated; if the write data state is updated to indicate "1" in the data to be written The bit is consistent with the corresponding bit in the current stored data, but the "0" bit in the data to be written does not completely coincide with the corresponding bit in the currently stored data, then enters a reset operation, otherwise the set operation is repeated;
  • the memory cell in the low-resistance state to be reset is written to "0" by performing a reset operation; then the write data state is updated; if the write data state is updated to indicate "0" in the data to be written The bit and the "1" bit are completely identical to the target cell data, and the writing is ended, otherwise the reset operation is repeated.
  • the memory cell in the low resistance state to be reset is written to "0" by the reset operation; the write data state is subsequently updated; if the data state is written It is updated to indicate that the "0" bit in the data to be written is consistent with the corresponding bit in the currently stored data, but the "1" bit in the data to be written does not exactly match the corresponding bit in the currently stored data, Then enter the set operation, otherwise repeat the reset operation;
  • the memory cell in the high-impedance state to be set is written "1" by performing a set operation; then the write data state is updated; if the write data state is updated to "in the data to be written” The 1" bit and the "0" bit are completely identical to the target cell data, and the writing is ended, otherwise the set operation is repeated.
  • the present invention also provides a memory array programming apparatus for resistive random access memory, the resistive random access memory including a memory array including a set of memory cells to be written, the memory array programming apparatus include:
  • a read/write circuit for reading current storage data of the group of storage units
  • a data comparator configured to compare the current storage data with the data to be written bit by bit, and determine whether the current storage data of the storage unit is consistent with the data to be written;
  • a write data state generation unit that generates a write data state according to a comparison result of the data comparator
  • a reset module which performs a reset operation only on the memory cells to be reset that are inconsistent with the data to be written according to the state of the write data
  • the setting module performs a set operation only on the memory cells to be set that are inconsistent with the data to be written according to the state of the write data.
  • the write data state includes four states to indicate whether a "0" bit in the data to be written is consistent with a corresponding bit in the currently stored data and a "1" bit in the data to be written and current Whether the corresponding bits in the stored data are consistent.
  • the reset module comprises:
  • the reset counter is used to calculate the number of voltage pulses rcnt applied during the reset operation. Each time the reset operation is performed, rcnt is incremented by 1, where 0 ⁇ rcnt ⁇ P-1, and P represents a predefined maximum voltage pulse that is allowed to be applied. frequency;
  • the setting module comprises:
  • the set counter is used to calculate the number of voltage pulses scnt applied during the set operation, and each time the set operation is performed, scnt is incremented by 1, where 0 ⁇ scnt ⁇ P-1, and P represents a predefined allowable application. Maximum number of voltage pulses;
  • the read/write circuit is further configured to read the reset storage unit after the reset operation, so as to verify whether R in the storage unit is greater than R HRS , where R is a resistance of the storage unit, and R HRS is High resistance threshold; or,
  • the read/write circuit is further configured to read the set memory cell after the set operation, so as to verify whether R in the memory cell is less than R LRS , where R is a cell resistance, and R LRS is a low resistance threshold value.
  • the present invention also provides a storage array programming method for a resistive random access memory, comprising the following steps:
  • the unit that writes “0” is not completely consistent.
  • step (3) when the write data state WDS is judged in step (3),
  • Vreset is a reset source line voltage
  • Vrinitial is an initial reset voltage
  • Vstep is a step voltage
  • the reset cell is read, and it is verified whether R in the cell is greater than R HRS , wherein R is the cell resistance, R HRS is the high-impedance threshold; the write data state is updated according to the comparison result, and if so, the updated WDS becomes the write "0" data and the target cell data is completely identical, otherwise the return reset process starts to loop.
  • Vset is the set bit line voltage
  • Vsinitial is the initial set voltage
  • Vstep is the step voltage
  • the set cell is read and verifying if R is less than R in the cell LRS , where R is the cell resistance and R LRS is the low resistance threshold
  • the write data state is updated according to the comparison result, and if so, the updated WDS becomes the write "1" data and the target cell data is completely identical, otherwise the return to the set process begins. cycle.
  • step d if the set flow is executed first, the set flow as described in step c is executed, and if the WDS becomes the unit to be written "1" within the predefined number of times P, the write "0" When the units are not completely consistent, the reset process is entered, otherwise the programming fails.
  • the reset process as described in step b is executed, and if the WDS becomes the write data and the target unit within a predefined number of times P If the data is completely consistent, the programming is successful, otherwise the programming fails.
  • step d if the reset process is executed first, the reset process as described in the step b is executed, and if the WDS becomes the unit to be written with “0” within the predefined number of times P, the “1” is written. When the units are not completely consistent, they will enter the set process, otherwise the programming will fail.
  • the set process as described in step c is executed. If the WDS becomes the write data and the target cell data is completely consistent within the predefined number of times P, the programming is successful, otherwise the programming fails.
  • the present invention will be described by taking a storage array composed of a 1T1R (1transistor 1resistor) type RRAM memory cell as an example.
  • the present invention is equally applicable to a memory array composed of a 1R (1resistor) type memory cell and a memory array composed of a 1D1R (1diode 1resistor type) memory cell.
  • FIG. 1 is a schematic structural diagram of a 1T1R memory cell in a resistive random access memory in the prior art.
  • the 1T1R RRAM memory cell includes a resistive change unit 15 and a The NMOS select transistor 16.
  • WL is the word line word line
  • BL is the bit line bit line
  • SL is the source line source line.
  • the anode of the resistive switching unit 15 is connected to the bit line 11, the cathode is connected to the drain terminal 13 of the NMOS select transistor 16, the source terminal of the NMOS select transistor 16 is connected to the source line 12, and the gate terminal of the NMOS select transistor 16 is connected to the word line 14.
  • the resistive switching unit 15 is in a low resistance state, the 1T1R storage value is '1', and when the resistive switching unit 15 is in a high impedance state, the 1T1R storage value is '0'.
  • state is the state; set is set, which is the process of R changing from high-impedance state to low-resistance state; reset is reset, which is the process of reset from R to low-impedance state; read is read Take; Vset_wl is the set word line voltage; Vreset_wl is the reset word line voltage; VDD is the power supply voltage; Vset is the set bit line voltage; Vreset is the reset source line voltage; Vread is the read bit line voltage; LRS(1) is Low resistance state and represents data "1"; HRS (0) is a high resistance state and represents data "0".
  • FIG. 2 is a memory array for a resistive random access memory according to an embodiment of the present invention.
  • the programming device includes a read/write circuit 211, a data comparison circuit 212, a write data state generation unit (or "state machine") 213, a set counter 214, a set voltage generator 215, a reset counter 216, and Reset voltage generator 217.
  • DI ⁇ 7:0> is 8-bit data input
  • DO ⁇ 7:0> is 8-bit data output
  • C ⁇ 7:0> is 8-bit data comparison result
  • WDS ⁇ 1:0> 2-bit write data State
  • Set is the set enable signal
  • Reset is the reset enable signal
  • scnt is the set counter output
  • rcnt is the reset counter output
  • Vset is the set bit line voltage
  • Vreset is the reset source line voltage.
  • FIG. 3 is a schematic diagram of a 1T1R memory cell based memory array in accordance with one embodiment of the present invention.
  • the memory array includes a 64x64 memory array 311, a row decoder 312, and a column decoder 313.
  • 4 is a block flow diagram of a memory array programming method for a resistive random access memory in accordance with one embodiment of the present invention. The programming method of the present invention will be described in detail below in conjunction with the memory array of FIG.
  • the writing step can be as follows:
  • WDS[1:0] “00”, and the units representing “1” and “0” are not completely identical.
  • the set process is first performed, that is, set. Process:
  • the read/write circuit 211 connects the word line 350 to Vwl_set, and applies Vset between the bit line 339 and the source line 340, respectively, and between the bit line 341 and the source line 342;
  • the read/write circuit 211 reads the two cells 319 and 320 to verify whether the resistance R of the resistive units 327 and 328 is less than R LRS ; wherein R is the cell resistance and R LRS is a low resistance threshold . Update the write data status according to the comparison result. If yes, update WDS to "1x" (x stands for "0" or "1"), which means that the write "1" data is completely consistent with the target unit data, otherwise it returns to the set flow and starts looping. .
  • the resistive change unit 327 of the 32th column unit changes from the high resistance state to the low resistance state, the resistive change unit 328 of the 40th column unit is still in a high resistance state, indicating that writing "1" to the 32nd column unit 319 is successful and the first 40 column unit 320 failed to write "1";
  • the read/write circuit 211 re-sets and reads the resistive change unit 328 of the 40th column unit. If "1" is successfully written to the 40th column unit 320 when scnt ⁇ P, the write data state generation unit 213 updates the WDS to "10". ", then enter the reset process, otherwise the programming fails.
  • the read/write circuit 211 reads the two units, that is, the 0th column unit 315 and the 48th column unit 321 so as to verify whether the resistance R of the resistive units 323 and 329 is greater than R HRS ; wherein R is the The cell resistance, R HRS , is the high resistance threshold.
  • the write data state generation unit 213 updates the write data state according to the comparison result, and if so, the update WDS becomes "x1" (x represents "0" or "1"), and the write "0" data is completely identical to the target cell data, otherwise returns The reset process begins to loop.
  • the resistive change unit 323 of the 0th column unit changes from the low resistance state to the high resistance state, the resistive change unit 329 of the 48th column unit is still in the low resistance state, indicating that the 0th column unit 315 is written. 0" success and failure to write "0" to unit 321 of column 48;
  • the voltage pulse height is increased, and the read/write circuit 211 resets the resistive change unit 329 of the 48th column unit. If the "0" is successfully written to the 48th column unit 321 when the rounter ⁇ P is successful, the read/write circuit 211 updates the WDS to "11". ", the programming is successful, otherwise the programming fails.

Abstract

一种用于阻变随机存储器的存储阵列编程方法和装置。该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元。所述编程方法包括:读取该组存储单元的当前存储数据,将当前存储数据与要写入的数据逐位进行比较,判断当前存储数据与要写入的数据是否一致,并根据判断的结果,产生写数据状态;判断写数据状态,通过置位操作或复位操作将要写入的数据仅写入当前存储数据与要写入的数据不一致的存储单元;检验置位操作或复位操作中是否有未写成功的存储单元,如果有,就重复上述步骤,直到写入结束。该编程方法可以避免重复写入,不仅减少对单元自身的写打扰,提高单元持久力,而且可以降低写功耗。

Description

阻变随机存储器的存储阵列编程方法和装置 技术领域
本发明涉及用于阻变随机存储器的存储阵列编程方法和装置。
背景技术
随着存储器技术的发展,越来越需要具有更高密度和更高性能的小尺寸存储器。但是,由于Flash存储器需要复杂的掩模图形及昂贵的制造成本,并且存在较大的字线漏电和单元之间的串扰,而且浮栅中电子数目越来越少,使得Flash存储器的尺寸缩小能力受到了很大限制,估计发展到1z nm将很难继续往下发展。因此,新兴的非挥发存储器CBRAM、MRAM、PRAM、RRAM等越来越受到重视,其中阻变随机存储器RRAM凭借高速度、大容量、低功耗、低成本和高可靠性被认为是Flash存储器最有力的候选者。
但是,由于RRAM阻变单元是根据两端所施加的电压或电流来改变电阻状态(低阻态存“1”,高阻态存“0”),所以低阻态和高阻态时的电阻大小对施加的电压或电流非常敏感。现有技术中,在对一组RRAM单元进行编程时,如果对已经处于低阻态的单元施加正向电压再次进行set,将会产生over-set,使高阻态失效;或者如果对已经处于高阻态的单元施加反向电压再次进行reset,将会产生over-reset,使低阻态失效。如上所述的编程方法会导致存储单元高阻态失效或者低阻态失效,使存储单元的数据存储能力减弱,寿命缩短。
因此,亟需一种能够解决上述问题至少之一的编程方法和装置。
发明内容
一方面,本发明提供一种用于阻变随机存储器的存储阵列编程方法,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,所述编程方法包括以下步骤:
(i)读取该组存储单元的当前存储数据,将当前存储数据与要写入的数据逐位进行比较,判断当前存储数据与要写入的数据是否一致, 并根据判断的结果,产生写数据状态;
(ii)判断写数据状态,通过置位操作或复位操作将要写入的数据仅写入当前存储数据与要写入的数据不一致的存储单元;
(iii)检验置位操作或复位操作中是否有未写成功的存储单元,如果有,就重复上述步骤(ii),直到写入结束。
另一方面,本发明提供一种用于阻变随机存储器的存储阵列编程装置,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,所述存储阵列编程装置包括:
读写电路,用于读取该组存储单元的当前存储数据;
数据比较器,用于将当前存储数据与要写入的数据逐位进行比较,判断存储单元的当前存储数据与要写入的数据是否一致;
写数据状态产生单元,其根据数据比较器的比较结果产生写数据状态;
复位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要复位的存储单元执行复位操作;
置位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要置位的存储单元执行置位操作。
本发明的用于阻变随机存储器的存储阵列编程方法和装置,能够避免重复写入,不仅减少对单元自身的写打扰,提高单元持久力,而且还可以降低写功耗。
再一方面,本发明还提供一种阻变随机存储器的存储阵列编程方法,包括以下步骤:
(1)初始化置位计数器scounter和复位计数器rcounter;置位计数器scounter和复位计数器rcounter分别用来记录存储阵列中一组存储单元进行置位和复位操作时施加的电压脉冲次数,输出信号分别为scnt和rcnt;其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;
(2)读取目标单元数据并和要写入的数据进行比较,寄存每一位的比较结果C[i](i=0,1,…,n-1),n是每次同时写入的单元数目;根据比较结果C[i]产生写数据状态WDS;
(3)判断写数据状态WDS,对于待写入数据不一致的目标单元 进行复位或置位的写入操作,直至在预定义的次数P内若写数据状态WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
又一方面,本发明还提供一种阻变随机存储器的存储阵列编程装置,包括分别用来记录编程中置位和复位时施加电压脉冲的次数的置位计数器scounter和复位计数器rcounter,其输出信号分别为scnt和rcnt,其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;用于读取目标单元数据的读写电路;用于和要写入的数据进行比较的数据比较器;用于寄存每一位的比较结果C[i](i=0,1,…,n-1)的寄存模块,n是每次同时写入的单元数目;用于根据比较结果C[i]产生写数据状态WDS的判断模块;用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行复位写入操作的复位模块;用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行置位写入操作的置位模块。
与现有技术相比,本发明具有以下有益的技术效果:
本发明利用分别针对置位和复位设置的计数器,通过对目标单元数据和要写入数据进行比较和判断,仅对存储数据和要写入数据不一致的目标单元进行写入;从而能够保证在编程时仅对存储数据和要写入数据不一致的目标单元进行写入,避免重复写入,不仅可以减少对单元自身的写打扰,提高单元持久力,并且在预定义允许施加的最大电压脉冲次数的限制下,可以提高数据读写的效率,降低写功耗。
另外,通过对写数据状态WDS的限定,做好分类准备,从而能够针对不同的写数据状态WDS清晰明确的对状态进行区分处理,提高了写数据的速率,缩短了判断执行时间。
而且,在复位流程中仅对存储“1”的单元写“0”,即仅将Vreset反向施加于当前存储“1”的低阻态单元中;在置位流程中仅对存储“0”的单元写“1”,即仅将Vset正向施加于当前存储“0”的高阻态单元中;不对其他的单元进行写处理,不仅避免了写打扰,而且延长了单元的使用寿命。
此外,在写“1”和写“0”的单元均不完全一致时,能够分步骤的依次对写“1”和写“0”的单元进行置位或复位的操作流程,一方面简化了处理流程,另一方面能够根据操作的闲忙状态进行对数据处理的分流, 整体提高了处理效率,提高了写数据时间。
附图说明
图1为现有技术中的阻变随机存储器内的1T1R存储单元的结构示意图。
图2为根据本发明一个实施方案的用于阻变随机存储器的存储阵列编程装置的示意性电路原理框图。
图3为根据本发明一个实施方案的基于1T1R存储单元的存储阵列的示意图。
图4为根据本发明一个实施方案的用于阻变随机存储器的存储阵列编程方法的流程框图。
具体实施方式
下面将结合附图对本发明的实施方案做进一步的详细说明,应理解这些说明仅意在解释而非限定本发明。
本发明提供一种用于阻变随机存储器的存储阵列编程方法,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,所述编程方法包括以下步骤:
(i)读取该组存储单元的当前存储数据,将当前存储数据与要写入的数据逐位进行比较,判断当前存储数据与要写入的数据是否一致,并根据判断的结果,产生写数据状态;
(ii)判断写数据状态,通过置位操作或复位操作将要写入的数据仅写入当前存储数据与要写入的数据不一致的存储单元;
(iii)检验置位操作或复位操作中是否有未写成功的存储单元,如果有,就重复上述步骤(ii),直到写入结束。
优选地,所述写数据状态包括四种状态,以代表要写入的数据中的“0”位与当前存储数据中的对应位是否一致以及要写入的数据中的“1”位与当前存储数据中的对应位是否一致。
优选地,根据所述写数据状态所表示的不同状态,所述步骤(ii)包括以下步骤:
A.如果写数据状态表示要写入的数据中的“0”位和“1”位与当 前存储数据中的对应位都一致,则写入结束;
B.如果写数据状态表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,但是要写入的数据中的“0”位与当前存储数据中的对应位不完全一致,则通过复位操作将不一致的位写“0”;
C.如果写数据状态表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,但是要写入的数据中的“1”位与当前存储数据中的对应位不完全一致,则通过置位操作将不一致的位写“1”;
D.如果写数据状态表示要写入的数据中的“0”位和“1”位与当前存储数据中的对应位都不完全一致,则先执行置位操作和复位操作中的一个操作,然后执行置位操作和复位操作中的另一个操作,直到写入结束。
优选地,所述方法还包括在步骤(i)之前初始化一个置位计数器和一个复位计数器,它们分别用来计算在置位和复位操作时所施加的电压脉冲次数scnt和rcnt,其中0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义的允许施加的最大电压脉冲次数。
优选地,所述复位操作包括以下步骤:
判断是否rcnt=P,若是则结束写入,否则计算复位源线电压Vreset=Vrinitial+(rcnt*Vstep),其中Vrinitial为初始复位电压,Vstep为台阶电压;
然后将rcnt加1得到rcnt=rcnt+1,并且
将复位源线电压反向施加于待要复位的处于低阻态的存储单元。
优选地,所述步骤(iii)包括:
在所述复位操作之后,对复位的存储单元进行读取,并验证所述存储单元中R是否大于RHRS,其中R为存储单元的电阻,RHRS为高阻临界值;
根据比较结果更新写数据状态,若是则更新写数据状态使得其表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,否则重复所述复位操作,直到写入结束。
优选地,所述置位操作包括以下步骤:
判断scnt是否等于P,若是则结束写入,否则计算置位位线电压Vset=Vsinitial+(scnt*Vstep),其中Vsinitial为初始置位电压,Vstep为 台阶电压;
然后将scnt加1得到scnt=scnt+1,并且
将置位位线电压正向施加于待要置位的处于高阻态的存储单元。
优选地,所述步骤(iii)包括:
在所述置位操作之后,对执行了置位操作的存储单元进行读取,并验证所述存储单元中R是否小于RLRS,其中R为存储单元的电阻,RLRS为低阻临界值;
根据比较结果更新写数据状态,若是则更新写数据状态使得其表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,否则重复所述置位操作,直到写入结束。
优选地,在写数据状态表示要写入的数据中的“0”位和“1”位与当前存储数据中的对应位都不完全一致的情况下,即在步骤D中,如果先执行置位操作,则通过置位操作将待要置位的处于高阻态的存储单元写“1”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,但是要写入的数据中的“0”位与当前存储数据中的对应位不完全一致,则进入复位操作,否则重复所述置位操作;
进入复位操作后,通过执行复位操作将待要复位的处于低阻态的存储单元写“0”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“0”位和“1”位与目标单元数据都完全一致,则结束写入,否则重复所述复位操作。
优选地,与上述执行顺序不同,如果在步骤D中先执行复位操作,则通过复位操作将待要复位的处于低阻态的存储单元写“0”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,但是要写入的数据中的“1”位与当前存储数据中的对应位不完全一致,则进入置位操作,否则重复所述复位操作;
进入置位操作后,通过执行置位操作将待要置位的处于高阻态的存储单元写“1”;随后更新写数据状态;如果写数据状态被更新为要写入的数据中的“1”位和“0”位与目标单元数据都完全一致,则结束写入,否则重复所述置位操作。
另外,本发明还提供一种用于阻变随机存储器的存储阵列编程装置,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,所述存储阵列编程装置包括:
读写电路,用于读取该组存储单元的当前存储数据;
数据比较器,用于将当前存储数据与要写入的数据逐位进行比较,判断存储单元的当前存储数据与要写入的数据是否一致;
写数据状态产生单元,其根据数据比较器的比较结果产生写数据状态;
复位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要复位的存储单元执行复位操作;
置位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要置位的存储单元执行置位操作。
优选地,所述写数据状态包括四个状态,以表明要写入的数据中的“0”位与当前存储数据中的对应位是否一致以及要写入的数据中的“1”位与当前存储数据中的对应位是否一致。
优选地,所述复位模块包括:
复位计数器,用于计算在复位操作时所施加的电压脉冲次数rcnt,每重复执行一次复位操作,rcnt就增加1,其中0≤rcnt≤P-1,P代表预定义的允许施加的最大电压脉冲次数;
复位电压产生器,用于产生复位源线电压Vreset,Vreset=Vrinitial+(rcnt*Vstep),其中Vrinitial为初始复位电压,Vstep为台阶电压。
优选地,所述置位模块包括:
置位计数器,用于计算在置位操作时所施加的电压脉冲次数scnt,每重复执行一次置位操作,scnt就增加1,其中0≤scnt≤P-1,P代表预定义的允许施加的最大电压脉冲次数;
置位电压产生器,用于产生置位位线电压Vset,Vset=Vsinitial+(scnt*Vstep),其中Vsinitial为初始置位电压,Vstep为台阶电压。
优选地,所述读写电路还用于在复位操作之后,对复位的存储单元进行读取,以使得验证所述存储单元中R是否大于RHRS,其中R为存 储单元的电阻,RHRS为高阻临界值;或者,
所述读写电路还用于在置位操作之后,对置位的存储单元进行读取,以使得验证所述存储单元中R是否小于RLRS,其中R为单元电阻,RLRS为低阻临界值。
再一方面,本发明还提供一种阻变随机存储器的存储阵列编程方法,包括以下步骤:
(1)初始化置位计数器scounter和复位计数器rcounter;置位计数器scounter和复位计数器rcounter分别用来记录存储阵列中一组存储单元进行置位和复位操作时施加的电压脉冲次数,输出信号分别为scnt和rcnt;其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;
(2)读取目标单元数据并和要写入的数据进行比较,寄存每一位的比较结果C[i](i=0,1,…,n-1),n是每次同时写入的单元数目;根据比较结果C[i]产生写数据状态WDS;
(3)判断写数据状态WDS,对于待写入数据不一致的目标单元进行复位或置位的写入操作,直至在预定义的次数P内若写数据状态WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
优选的,步骤(2)中所述写数据状态WDS包括如下四个状态;WDS=“11”代表写数据与目标单元数据完全一致,WDS=“10”代表要写“1”的单元完全一致,写“0”的单元不完全一致,WDS=“01”代表要写“0”的单元完全一致,写“1”的单元不完全一致,WDS=“00”代表写“1”和写“0”的单元均不完全一致。
优选的,步骤(3)中进行写数据状态WDS判断时,
a.若写数据状态WDS为写数据与目标单元数据完全一致时;编程成功;
b.若写数据状态WDS为要写“1”的单元完全一致,写“0”的单元不完全一致时;进入复位流程,对低阻态单元进行复位后并更新写数据状态,若WDS变为写数据与目标单元数据完全一致时则编程成功,否则返回复位流程开始进行循环;
c.若写数据状态WDS为要写“0”的单元完全一致,写“1”的单元不完全一致;进入置位流程,对高阻态单元进行置位后并更新写数据状 态,若WDS变为写数据与目标单元数据完全一致时则编程成功,否则返回置位流程开始进行循环;
d.若写数据状态WDS为写“1”和写“0”的单元均不完全一致,先进入置位或复位流程,后进入另一未执行流程;若在预定义的次数P内若WDS变为写数据与目标单元数据完全一致时则编程成功,否则编程失败。
进一步,步骤b中进行复位流程时,判断rcnt是否等于P,若是则编程失败,否则计算Vreset=Vrinitial+(rcnt*Vstep),同时将rcnt加1得到rcnt=rcnt+1,并将Vreset反向施加于处于低阻态的单元;其中,Vreset为复位源线电压,Vrinitial为初始复位电压,Vstep为阶梯电压;然后对复位的单元进行读取,并验证该单元中R是否大于RHRS,其中,R为单元电阻,RHRS为高阻临界值;根据比较结果更新写数据状态,若是则更新WDS变为写“0”数据与目标单元数据完全一致,否则返回复位流程开始进行循环。
进一步,步骤c中进行置位流程时,判断scnt是否等于P,若是则编程失败,否则计算Vset=Vsinitial+(scnt*Vstep),同时将scnt加1得到scnt=scnt+1,并将Vset正向施加于处于高阻态的单元;其中,Vset为置位位线电压,Vsinitial为初始置位电压,Vstep为阶梯电压;然后对置位的单元进行读取,并验证该单元中R是否小于RLRS,其中,R为单元电阻,RLRS为低阻临界值;根据比较结果更新写数据状态,若是则更新WDS变为写“1”数据与目标单元数据完全一致,否则返回置位流程开始进行循环。
进一步,步骤d中,若先执行置位流程,则执行如步骤c中所述的置位流程,在预定义的次数P内若WDS变为要写“1”的单元完全一致,写“0”的单元不完全一致时,则进入复位流程,否则编程失败,进入复位流程后,则执行如步骤b中所述的复位流程,在预定义的次数P内若WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
进一步,步骤d中,若先执行复位流程,则执行如步骤b中所述的复位流程,在预定义的次数P内若WDS变为要写“0”的单元完全一致,写“1”的单元不完全一致时,则进入置位流程,否则编程失败,进 入置位流程后,则执行如步骤c中所述的置位流程,在预定义的次数P内若WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
又一方面,本发明还提供一种阻变随机存储器的存储阵列编程装置,包括分别用来记录编程中置位和复位时施加电压脉冲的次数的置位计数器scounter和复位计数器rcounter,其输出信号分别为scnt和rcnt,其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;用于读取目标单元数据的读写电路;用于和要写入的数据进行比较的数据比较器;用于寄存每一位的比较结果C[i](i=0,1,…,n-1)的寄存模块,n是每次同时写入的单元数目;用于根据比较结果C[i]产生写数据状态WDS的判断模块;用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行复位写入操作的复位模块;用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行置位写入操作的置位模块。
优选地,复位模块包括:用于判断是否scnt=P的模块;用于在rcnt不等于P时计算Vreset=Vsinitial+(rcnt*Vstep)和rcnt=rcnt+1的模块;用于将Vreset反向施加于处于低阻态的单元的复位电压产生器;用于对复位的单元进行读取,并验证该单元电阻是否大于高阻临界值的模块;用于根据验证结果更新写数据状态的模块。
优选地,置位模块包括:用于判断是否scnt=P的模块;用于在scnt不等于P时计算Vset=Vsinitial+(scnt*Vstep)和scnt=scnt+1的模块;用于将Vset正向施加于处于高阻态的置位电压产生器;用于对置位的单元进行读取,并验证该单元电阻是否小于低阻临界值的模块;用于根据验证结果更新写数据状态的模块。
下面本文将以1T1R(1transistor 1resistor)型RRAM存储单元组成的存储阵列为例对本发明进行说明。本发明同样适用于1R(1resistor)型存储单元组成的存储阵列和1D1R(1diode 1resistor)型存储单元组成的存储阵列。
图1为现有技术中的阻变随机存储器内的1T1R存储单元的结构示意图。
如图1所示,1T1R RRAM存储单元包括一个阻变单元15和一个 NMOS选择晶体管16。其中,WL为字线word line;BL为位线bit line;SL为源线source line。阻变单元15的阳极与位线11连接,阴极与NMOS选择晶体管16的漏端13相连,NMOS选择晶体管16的源端与源线12连接,NMOS选择晶体管16的栅端与字线14连接。当阻变单元15为低阻态时,1T1R存储值为‘1’,当阻变单元15为高阻态时,1T1R存储值为‘0’。
当1T1R RRAM存储单元进行读写操作时,操作条件如表1所示。
表1
1T1R set reset read
WL Vset_wl Vreset_wl VDD
BL Vset 0 Vread
SL 0 Vreset 0
state LRS(1) HRS(0) 1/0
表1中,state为状态;set为置位,是R从高阻态变为低阻态的过程;reset为复位,是reset为R从低阻态变为高阻态的过程;read为读取;Vset_wl为置位字线电压;Vreset_wl为复位字线电压;VDD为电源电压;Vset为置位位线电压;Vreset为复位源线电压;Vread为读取位线电压;LRS(1)为低电阻态并且代表数据“1”;HRS(0)为高电阻态并且代表数据“0”。
当对1T1R写‘1’时,即对阻变单元15进行置位时,字线14接电压Vset_wl,位线11接置位位线电压Vset,源线12接地线GND。当对1T1R写‘0’时,即对阻变单元15进行复位时,字线14接电压Vreset_wl,位线11接地线GND,源线12接复位源线电压Vreset。当对1T1R进行读取时,字线14接电源电压VDD,位线11接读取位线电压Vread,源线12与地线连接。位线11上的电流和参考电流被送往基于电流模式的灵敏放大器,如果位线11上的电流大于参考电流,则读取值为“1”,反之,则读取值为“0”。
图2为根据本发明一个实施方案的用于阻变随机存储器的存储阵 列编程装置的示意性电路原理框图。
如图2所示,该编程装置包括读写电路211、数据比较电路212、写数据状态产生单元(或称为“状态机”)213、set计数器214、set电压产生器215、reset计数器216以及reset电压产生器217。其中,DI<7:0>为8位数据输入;DO<7:0>为8位数据输出;C<7:0>为8位数据比较结果;WDS<1:0>为2位写数据状态;Set为置位使能信号;Reset为复位使能信号;scnt为置位计数器输出;rcnt为复位计数器输出;Vset为置位位线电压;Vreset为复位源线电压。
图3为根据本发明一个实施方案的基于1T1R存储单元的存储阵列的示意图。如图3所示,该存储阵列包括一个64x64的存储阵列311、行译码器312和列译码器313。图4为根据本发明一个实施方案的用于阻变随机存储器的存储阵列编程方法的流程框图。下面就结合图3的存储阵列来详细说明本发明的编程方法。
如果想要对存储阵列311中第63行内第0列单元315、第8列单元316、第16列单元317、第24列单元318、第32列单元319、第40列单元320、第48列单元321和第56列单元322的8个单元同时进行写入,假如这8个单元写入前的当前存储值为DO[7:0]=“10010011”(从左往右表示),要写入的值为DI[7:0]=“00011101”,则写入步骤可以如下:
1、初始化set计数器214和reset计数器215,使scnt=0和rcnt=0,预定义P=16,即每次写入允许施加的最大电压脉冲次数为16。
2、读写电路211读取目标写入单元存储值DO[7:0]=“10010011”,数据比较电路212比较DO[7:0]和要写入的值DI[7:0]=“00011101”,产生并寄存比较结果C[i]=~(DO[i]^DI[i]),C[i]=“0”代表第i为数据不一致,C[i]=“1”代表第i位数据一致,本实施例中C[7:0]=“01110001”。根据C[i]产生写数据状态WDS[1:0],其中WDS[1]=&(~DI[i]||C[i]),代表写“1”的单元是否完全一致;WDS[0]=&(DI[i]||C[i]),代表写“0”的单元是否完全一致。本实施例中WDS[1:0]=“00”,代表写“1”和写“0”的单元均不完全一致。
3、写数据状态产生单元213根据数据比较电路212输出WDS[1:0]=“00”使能置位流程,又由表1可知对同一行中多个1T1R单 元同时写入时,由于置位和复位所要求的字线电压不一样,所以置位和复位操作不能同时进行,必须分两步进行,本实施例中假设先进行置位流程,也就是set流程:
3a.判断scnt=0≠P,set电压产生器215根据set计数器214的scnt值输出新的置位位线电压Vset=Vsinitial+(scnt*Vstep),随后set计数器214输出值scnt=0+1=1;
3b.由于DI[4]=DI[3]=DI[2]=DI[0]=“1”且C[4]=C[0]=“1”,C[3]=C[2]=“0”,写“1”的单元第4位和第0位一致,第3位和第2位不一致,所以只对第3位和第2位对应的1T1R单元319和320进行写“1”。在置位操作中,读写电路211将字线350接Vwl_set,将Vset分别正向施加于位线339和源线340之间,以及位线341和源线342之间;
3c.读写电路211对这两个单元319和320进行读取,以使得验证阻变单元327和328的电阻R是否小于RLRS;其中,R为该单元电阻,RLRS为低阻临界值。根据比较结果更新写数据状态,若是则更新WDS变为“1x”(x代表“0”或“1”),代表写“1”数据与目标单元数据完全一致,否则返回置位流程开始进行循环。假如第32列单元的阻变单元327从高阻态变为低阻态,第40列单元的阻变单元328依然处于高阻态,表明对第32列单元319写“1”成功和对第40列单元320写“1”失败;
3d.写数据状态产生单元213根据比较结果更新写数据状态,WDS仍然为“00”,返回(1),set电压产生器215根据set计数器214的scnt值输出Vset=Vsinitial+(scnt*Vstep),提高施加电压的脉冲高度。读写电路211对第40列单元的阻变单元328重新进行set并读取,若在scnt<P时对第40列单元320写“1”成功,写数据状态产生单元213更新WDS为“10”,则进入reset流程,否则编程失败。
4、若WDS[1:0]更新为“10”,写数据状态产生单元213使能reset流程,也就是复位流程:
4a.判断rcnt=0≠P,reset电压产生器217根据reset计数器216的rcnt值输出Vreset=Vrinitial+(rcnt*Vstep)得到新的复位源线电压,且reset计数器216输出值rcnt=0+1=1;
4b.由于DI[7]=DI[6]=DI[5]=DI[1]=“0”且C[6]=C[5]=“1”,C[7]=C[1]=“0”,写“0”的单元第6位和第5位一致,第7位和第1位不 一致,所以只对第7位和第1位对应的1T1R单元的第0列单元315和第48列单元321写“0”。在复位操作中,读写电路211将字线350接Vwl_reset,将Vreset分别反向施加于位线331和源线332之间,以及位线343和源线344之间;
4c.读写电路211对这两个单元,即第0列单元315和第48列单元321进行读取,以使得验证阻变单元323和329的电阻R是否大于RHRS;其中,R为该单元电阻,RHRS为高阻临界值。写数据状态产生单元213根据比较结果更新写数据状态,若是则更新WDS变为“x1”(x代表”0’或“1”),代表写“0”数据与目标单元数据完全一致,否则返回复位流程开始进行循环。假如第0列单元的阻变单元323从低阻态变为高阻态,第48列单元的阻变单元329依然处于低阻态,表明对第0列单元315写“0”成功和对第48列单元321写“0”失败;
4d.写数据状态产生单元213根据比较结果更新写数据状态,WDS仍然为“10”,返回(1),reset电压产生器217根据reset计数器216的rcnt值输出Vreset=Vrinitial+(rcnt*Vstep),提高电压脉冲高度,读写电路211对第48列单元的阻变单元329重新进行复位,若在rounter<P时对第48列单元321写“0”成功,读写电路211更新WDS为“11”,则编程成功,否则编程失败。
本领域的技术人员容易理解,上文仅通过示例方式例示了本发明的实施方案,并不意在限制本发明。在本发明的精神和原则之内,可以对本发明做出任何修改和等同替换,这些改进均应被理解为落在本发明的保护范围之内。

Claims (25)

  1. 一种用于阻变随机存储器的存储阵列编程方法,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,其特征在于,所述编程方法包括以下步骤:
    (i)读取该组存储单元的当前存储数据,将当前存储数据与要写入的数据逐位进行比较,判断当前存储数据与要写入的数据是否一致,并根据判断的结果,产生写数据状态;
    (ii)判断写数据状态,通过置位操作或复位操作将要写入的数据仅写入当前存储数据与要写入的数据不一致的存储单元;
    (iii)检验置位操作或复位操作中是否有未写成功的存储单元,如果有,就重复上述步骤(ii),直到写入结束。
  2. 根据权利要求1所述的用于阻变随机存储器的存储阵列编程方法,其中所述写数据状态包括四种状态,以代表要写入的数据中的“0”位与当前存储数据中的对应位是否一致以及要写入的数据中的“1”位与当前存储数据中的对应位是否一致。
  3. 根据权利要求2所述的用于阻变随机存储器的存储阵列编程方法,其中根据所述写数据状态所表示的不同状态,所述步骤(ii)包括以下步骤:
    A.如果写数据状态表示要写入的数据中的“0”位和“1”位与当前存储数据中的对应位都一致,则写入结束;
    B.如果写数据状态表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,但是要写入的数据中的“0”位与当前存储数据中的对应位不完全一致,则通过复位操作将不一致的位写“0”;
    C.如果写数据状态表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,但是要写入的数据中的“1”位与当前存储数据中的对应位不完全一致,则通过置位操作将不一致的位写“1”;
    D.如果写数据状态表示要写入的数据中的“0”位和“1”位与当前存储数据中的对应位都不完全一致,则先执行置位操作和复位操作中的一个操作,然后执行置位操作和复位操作中的另一个操作,直到写入结束。
  4. 根据权利要求3所述的用于阻变随机存储器的存储阵列编程方法,其中还包括在步骤(i)之前初始化一个置位计数器和一个复位计数器,它们分别用来计算在置位和复位操作时所施加的电压脉冲次数scnt和rcnt,其中0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义的允许施加的最大电压脉冲次数。
  5. 根据权利要求4所述的用于阻变随机存储器的存储阵列编程方法,其中所述复位操作包括以下步骤:
    判断rcnt是否等于P,若是则结束写入,否则计算复位源线电压Vreset=Vrinitial+(rcnt*Vstep),其中Vrinitial为初始复位电压,Vstep为台阶电压;
    然后将rcnt加1得到rcnt=rcnt+1,并且
    将复位源线电压反向施加于待要复位的处于低阻态的存储单元。
  6. 根据权利要求5所述的用于阻变随机存储器的存储阵列编程方法,其中所述步骤(iii)包括:
    在所述复位操作之后,对复位的存储单元进行读取,并验证所述存储单元中R是否大于RHRS,其中R为存储单元的电阻,RHRS为高阻临界值;
    根据比较结果更新写数据状态,若是则更新写数据状态使得其表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,否则重复所述复位操作,直到写入结束。
  7. 根据权利要求4所述的用于阻变随机存储器的存储阵列编程方法,其中所述置位操作包括以下步骤:
    判断scnt是否等于P,若是则结束写入,否则计算置位位线电压Vset=Vsinitial+(scnt*Vstep),其中Vsinitial为初始置位电压,Vstep为台阶电压;
    然后将scnt加1得到scnt=scnt+1,并且
    将置位位线电压正向施加于待要置位的处于高阻态的存储单元。
  8. 根据权利要求7所述的用于阻变随机存储器的存储阵列编程方法,其中所述步骤(iii)包括:
    在所述置位操作之后,对执行了置位操作的存储单元进行读取,并验证所述存储单元中R是否小于RLRS,其中R为存储单元的电阻,RLRS 为低阻临界值;
    根据比较结果更新写数据状态,若是则更新写数据状态使得其表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,否则重复所述置位操作,直到写入结束。
  9. 根据权利要求3所述的用于阻变随机存储器的存储阵列编程方法,其中在步骤D中,如果先执行置位操作,则通过置位操作将待要置位的处于高阻态的存储单元写“1”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“1”位与当前存储数据中的对应位都一致,但是要写入的数据中的“0”位与当前存储数据中的对应位不完全一致,则进入复位操作,否则重复所述置位操作;
    进入复位操作后,通过执行复位操作将待要复位的处于低阻态的存储单元写“0”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“0”位和“1”位与目标单元数据都完全一致,则结束写入,否则重复所述复位操作。
  10. 根据权利要求3所述的用于阻变随机存储器的存储阵列编程方法,其中在步骤D中,如果先执行复位操作,则通过复位操作将待要复位的处于低阻态的存储单元写“0”;随后更新写数据状态;如果写数据状态被更新为表示要写入的数据中的“0”位与当前存储数据中的对应位都一致,但是要写入的数据中的“1”位与当前存储数据中的对应位不完全一致,则进入置位操作,否则重复所述复位操作;
    进入置位操作后,通过执行置位操作将待要置位的处于高阻态的存储单元写“1”;随后更新写数据状态;如果写数据状态被更新为要写入的数据中的“1”位和“0”位与目标单元数据都完全一致,则结束写入,否则重复所述置位操作。
  11. 一种用于阻变随机存储器的存储阵列编程装置,该阻变随机存储器包括一个存储阵列,该存储阵列包括将要写入数据的一组存储单元,其特征在于,所述存储阵列编程装置包括:
    读写电路,用于读取该组存储单元的当前存储数据;
    数据比较器,用于将当前存储数据与要写入的数据逐位进行比较,判断存储单元的当前存储数据与要写入的数据是否一致;
    写数据状态产生单元,其根据数据比较器的比较结果产生写数据状 态;
    复位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要复位的存储单元执行复位操作;
    置位模块,其根据写数据状态仅对当前存储数据与要写入的数据不一致的待要置位的存储单元执行置位操作。
  12. 根据权利要求11所述的用于阻变随机存储器的存储阵列编程装置,其中所述写数据状态包括四个状态,以表明要写入的数据中的“0”位与当前存储数据中的对应位是否一致以及要写入的数据中的“1”位与当前存储数据中的对应位是否一致。
  13. 根据权利要求11所述的用于阻变随机存储器的存储阵列编程装置,其中所述复位模块包括:
    复位计数器,用于计算在复位操作时所施加的电压脉冲次数rcnt,每重复执行一次复位操作,rcnt就增加1,其中0≤rcnt≤P-1,P代表预定义的允许施加的最大电压脉冲次数;
    复位电压产生器,用于产生待要施加至存储单元使其复位的复位源线电压Vreset,Vreset=Vrinitial+(rcnt*Vstep),其中Vrinitial为初始复位电压,Vstep为台阶电压。
  14. 根据权利要求11所述的用于阻变随机存储器的存储阵列编程装置,其中所述置位模块包括:
    置位计数器,用于计算在置位操作时所施加的电压脉冲次数scnt,每重复执行一次置位操作,scnt就增加1,其中0≤scnt≤P-1,P代表预定义的允许施加的最大电压脉冲次数;
    置位电压产生器,用于产生待要施加至存储单元使其置位的置位位线电压Vset,Vset=Vsinitial+(scnt*Vstep),其中Vsinitial为初始置位电压,Vstep为台阶电压。
  15. 根据权利要求11所述的用于阻变随机存储器的存储阵列编程装置,其中所述读写电路还用于在复位操作之后,对复位的存储单元进行读取,以使得验证所述存储单元中R是否大于RHRS,其中R为存储单元的电阻,RHRS为高阻临界值;或者
    所述读写电路还用于在置位操作之后,对置位的存储单元进行读取,以使得验证所述存储单元中R是否小于RLRS,其中R为单元电阻, RLRS为低阻临界值。
  16. 一种用于阻变随机存储器的存储阵列编程方法,其特征在于,包括以下步骤:
    (1)初始化置位计数器scounter和复位计数器rcounter;置位计数器scounter和复位计数器rcounter分别用来记录存储阵列中一组存储单元进行置位和复位操作时施加的电压脉冲次数,输出信号分别为scnt和rcnt;其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;
    (2)读取目标单元数据并和要写入的数据进行比较,寄存每一位的比较结果C[i](i=0,1,…,n-1),n是每次同时写入的单元数目;根据比较结果C[i]产生写数据状态WDS;
    (3)判断写数据状态WDS,对于待写入数据不一致的目标单元进行复位或置位的写入操作,直至在预定义的次数P内若写数据状态WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
  17. 根据权利要求16所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤(2)中所述写数据状态WDS包括如下四个状态:WDS=“11”代表写数据与目标单元数据完全一致,WDS=“10”代表要写“1”的单元完全一致,写“0”的单元不完全一致,WDS=“01”代表要写“0”的单元完全一致,写“1”的单元不完全一致,WDS=“00”代表写“1”和写“0”的单元均不完全一致。
  18. 根据权利要求16所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤(3)中进行写数据状态WDS判断时,
    a.若写数据状态WDS为写数据与目标单元数据完全一致时;编程成功;
    b.若写数据状态WDS为要写“1”的单元完全一致,写“0”的单元不完全一致时;进入复位流程,对低阻态单元进行复位后并更新写数据状态,若WDS变为写数据与目标单元数据完全一致时则编程成功,否则返回复位流程开始进行循环;
    c.若写数据状态WDS为要写“0”的单元完全一致,写“1”的单元不完全一致;进入置位流程,对高阻态单元进行置位后并更新写数据状态,若WDS变为写数据与目标单元数据完全一致时则编程成功,否则 返回置位流程开始进行循环;
    d.若写数据状态WDS为写“1”和写“0”的单元均不完全一致,先进入置位或复位流程,后进入另一未执行流程;若在预定义的次数P内若WDS变为写数据与目标单元数据完全一致时则编程成功,否则编程失败。
  19. 根据权利要求18所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤b中进行复位流程时,判断rcnt是否等于P,若是则编程失败,否则计算Vreset=Vrinitial+(rcnt*Vstep),同时将rcnt加1得到rcnt=rcnt+1,并将Vreset反向施加于处于低阻态的单元;其中,Vreset为复位源线电压,Vrinitial为初始复位电压,Vstep为阶梯电压;
    然后对复位的单元进行读取,并验证该单元中R是否大于RHRS,其中,R为单元电阻,RHRS为高阻临界值;根据比较结果更新写数据状态,若是则更新WDS变为写“0”数据与目标单元数据完全一致,否则返回复位流程开始进行循环。
  20. 根据权利要求18所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤c中进行置位流程时,判断scnt是否等于P,若是则编程失败,否则计算Vset=Vsinitial+(scnt*Vstep),同时将scnt加1得到scnt=scnt+1,并将Vset正向施加于处于高阻态的单元;其中,Vset为置位位线电压,Vsinitial为初始置位电压,Vstep为阶梯电压;
    然后对置位的单元进行读取,并验证该单元中R是否小于RLRS,其中,R为单元电阻,RLRS为低阻临界值;根据比较结果更新写数据状态,若是则更新WDS变为写“1”数据与目标单元数据完全一致,否则返回置位流程开始进行循环。
  21. 根据权利要求18所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤d中,若先执行置位流程,则执行如步骤c中所述的置位流程,在预定义的次数P内若WDS变为要写“1”的单元完全一致,写“0”的单元不完全一致时,则进入复位流程,否则编程失败,进入复位流程后,则执行如步骤b中所述的复位流程,在预定义的次数P内若WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
  22. 根据权利要求18所述的用于阻变随机存储器的存储阵列编程方法,其特征在于,步骤d中,若先执行复位流程,则执行如步骤b中所述的复位流程,在预定义的次数P内若WDS变为要写“0”的单元完全一致,写“1”的单元不完全一致时,则进入置位流程,否则编程失败,进入置位流程后,则执行如步骤c中所述的置位流程,在预定义的次数P内若WDS变为写数据与目标单元数据完全一致则编程成功,否则编程失败。
  23. 一种用于阻变随机存储器的存储阵列编程装置,其特征在于,包括:
    分别用来记录编程中置位和复位时施加电压脉冲次数的置位计数器scounter和复位计数器rcounter,其输出信号分别为scnt和rcnt,其中,0≤scnt≤P-1;0≤rcnt≤P-1;P代表预定义允许施加的最大电压脉冲次数;
    用于读取目标单元数据的读写电路;
    用于和要写入的数据进行比较的数据比较器;
    用于寄存每一位的比较结果C[i](i=0,1,…,n-1)的寄存模块,n是每次同时写入的单元数目;
    用于根据比较结果C[i]产生写数据状态WDS的判断模块;
    用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行复位写入操作的复位模块;
    用于判断写数据状态WDS,对于待写入数据不一致的目标单元进行置位写入操作的置位模块。
  24. 根据权利要求23所述的用于阻变随机存储器的存储阵列编程装置,其特征在于,复位模块中包括,
    用于判断是否scnt=P的模块;
    用于在rcnt不等于P时计算Vreset=Vsinitial+(rcnt*Vstep)和rcnt=rcnt+1的模块;
    用于将Vreset反向施加于处于低阻态的单元的复位电压产生器;
    用于对复位的单元进行读取,并验证该单元电阻是否大于高阻临界值的模块;
    用于根据验证结果更新写数据状态的模块。
  25. 根据权利要求23所述的用于阻变随机存储器的存储阵列编程装置,其特征在于,置位模块中包括,
    用于判断scnt是否P的模块;
    用于在scnt不等于P时计算Vset=Vsinitial+(scnt*Vstep)和scnt=scnt+1的模块;
    用于将Vset正向施加于处于高阻态的置位电压产生器;
    用于对置位的单元进行读取,并验证该单元电阻是否小于低阻临界值的模块;
    用于根据验证结果更新写数据状态的模块。
PCT/CN2015/090690 2014-09-30 2015-09-25 阻变随机存储器的存储阵列编程方法和装置 WO2016050170A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/515,359 US10522221B2 (en) 2014-09-30 2015-09-25 Storage array programming method and device for resistive random access memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410521542.3 2014-09-30
CN201410521542.3A CN104318956B (zh) 2014-09-30 2014-09-30 一种阻变随机存储器存储阵列编程方法及装置

Publications (1)

Publication Number Publication Date
WO2016050170A1 true WO2016050170A1 (zh) 2016-04-07

Family

ID=52374175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/090690 WO2016050170A1 (zh) 2014-09-30 2015-09-25 阻变随机存储器的存储阵列编程方法和装置

Country Status (3)

Country Link
US (1) US10522221B2 (zh)
CN (1) CN104318956B (zh)
WO (1) WO2016050170A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318956B (zh) 2014-09-30 2018-05-15 西安紫光国芯半导体有限公司 一种阻变随机存储器存储阵列编程方法及装置
CN104794261A (zh) * 2015-03-27 2015-07-22 山东华芯半导体有限公司 一种具有复位功能的阻变型随机存储器模型及存储方法
CN104733047B (zh) 2015-03-30 2018-05-08 西安紫光国芯半导体有限公司 一种包括参考单元的rram子阵列结构
CN109147860B (zh) * 2017-06-27 2020-11-17 华邦电子股份有限公司 存储器存储装置及其测试方法
US10510410B2 (en) * 2017-11-13 2019-12-17 Taiwan Semiconductor Manufacturing Co., Ltd. Method for programming resistive memory cell with AC perturbation AC signal and nonvolatile memory device thereof
CN108111162B (zh) * 2017-12-17 2020-12-08 华中科技大学 一种运算电路及操作方法
CN109871594B (zh) * 2019-01-28 2023-02-03 山东华芯半导体有限公司 一种NAND Flash特性模型建立方法
CN110620128A (zh) * 2019-08-29 2019-12-27 浙江省北大信息技术高等研究院 一种阻变存储器件及其写入方法、擦除方法和读取方法
CN110989972B (zh) * 2019-12-05 2021-11-30 清华大学 随机数的生成方法及随机数生成器
KR20210081049A (ko) * 2019-12-23 2021-07-01 에스케이하이닉스 주식회사 저항성 메모리 장치 및 그의 동작 방법
CN113257307B (zh) * 2020-02-13 2024-04-26 华邦电子股份有限公司 存储器装置及数据写入方法
CN111338602A (zh) * 2020-04-02 2020-06-26 北京大学 一种用于随机计算的比特流生成器及生成方法
CN112750486B (zh) * 2021-01-06 2022-09-27 之江实验室 一种阻变存储器的故障测试方法
US20220284955A1 (en) * 2021-03-03 2022-09-08 Weebit Nano Ltd. Circuitry for parallel set and reset of resistive random-access memory (reram) cells

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007052558A (ja) * 2005-08-16 2007-03-01 Matsushita Electric Ind Co Ltd フラッシュメモリ書換え装置、フラッシュメモリ書換え方法及びフラッシュメモリ書換えプログラム
US20100067281A1 (en) * 2008-09-15 2010-03-18 Seagate Technology Llc Variable write and read methods for resistive random access memory
CN102870159A (zh) * 2010-04-26 2013-01-09 莫塞德技术公司 在相变存储器中的写入方案
CN103065682A (zh) * 2011-10-20 2013-04-24 爱思开海力士有限公司 非易失性存储装置及其写入控制方法
US20140198581A1 (en) * 2013-01-14 2014-07-17 Eun-Kyoung Kim Method of storing data in nonvolatile memory device and method of testing nonvolatile memory device
CN104318956A (zh) * 2014-09-30 2015-01-28 山东华芯半导体有限公司 一种阻变随机存储器存储阵列编程方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203112B2 (en) 2004-08-05 2007-04-10 Taiwan Semiconductor Manufacturing Co., Ltd. Multiple stage method and system for sensing outputs from memory cells
JP4890016B2 (ja) 2005-03-16 2012-03-07 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
KR100764738B1 (ko) * 2006-04-06 2007-10-09 삼성전자주식회사 향상된 신뢰성을 갖는 상변화 메모리 장치, 그것의 쓰기방법, 그리고 그것을 포함한 시스템
KR100834738B1 (ko) * 2006-08-31 2008-06-05 삼성전자주식회사 상변화 메모리 장치의 구동 방법 및 그 방법을 사용하는상변화 메모리 장치
KR100816161B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
CN101266834B (zh) * 2007-03-15 2012-07-04 西格斯教育资本有限责任公司 相变存储器的驱动方法与系统
KR100887061B1 (ko) 2007-07-24 2009-03-04 주식회사 하이닉스반도체 상 변화 메모리 장치
CN101388246A (zh) 2007-09-10 2009-03-18 财团法人工业技术研究院 相变化存储器
CN101404179B (zh) * 2008-11-07 2011-04-20 中国科学院上海微系统与信息技术研究所 提升相变存储器编程速度的方法及实现方法
JP2010146654A (ja) * 2008-12-19 2010-07-01 Toshiba Corp メモリ装置
US8634235B2 (en) * 2010-06-25 2014-01-21 Macronix International Co., Ltd. Phase change memory coding
WO2014068961A1 (ja) 2012-10-30 2014-05-08 パナソニック株式会社 不揮発性半導体記憶装置
KR102056853B1 (ko) 2013-01-18 2020-01-22 삼성전자주식회사 저항성 메모리 장치 및 그에 따른 동작 제어방법
CN204680387U (zh) 2015-03-30 2015-09-30 山东华芯半导体有限公司 一种包括参考单元的rram子阵列结构
CN104733047B (zh) 2015-03-30 2018-05-08 西安紫光国芯半导体有限公司 一种包括参考单元的rram子阵列结构

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007052558A (ja) * 2005-08-16 2007-03-01 Matsushita Electric Ind Co Ltd フラッシュメモリ書換え装置、フラッシュメモリ書換え方法及びフラッシュメモリ書換えプログラム
US20100067281A1 (en) * 2008-09-15 2010-03-18 Seagate Technology Llc Variable write and read methods for resistive random access memory
CN102870159A (zh) * 2010-04-26 2013-01-09 莫塞德技术公司 在相变存储器中的写入方案
CN103065682A (zh) * 2011-10-20 2013-04-24 爱思开海力士有限公司 非易失性存储装置及其写入控制方法
US20140198581A1 (en) * 2013-01-14 2014-07-17 Eun-Kyoung Kim Method of storing data in nonvolatile memory device and method of testing nonvolatile memory device
CN104318956A (zh) * 2014-09-30 2015-01-28 山东华芯半导体有限公司 一种阻变随机存储器存储阵列编程方法及装置

Also Published As

Publication number Publication date
US10522221B2 (en) 2019-12-31
CN104318956B (zh) 2018-05-15
US20170301399A1 (en) 2017-10-19
CN104318956A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
WO2016050170A1 (zh) 阻变随机存储器的存储阵列编程方法和装置
US10908986B2 (en) Multi-level recovery reads for memory
US10147495B2 (en) Nonvolatile memory device generating loop status information, storage device including the same, and operating method thereof
US8392770B2 (en) Resistance change memory device having high-speed two-step write mode
US8625339B2 (en) Multi-cell per memory-bit circuit and method
TWI625727B (zh) 半導體儲存裝置、其抹除方法及編程方法
US20120239866A1 (en) Non-volatile memory with error correction for page copy operation and method thereof
JP2013503410A (ja) メモリ装置におけるしきい値電圧の変化に対応するための方法、装置、およびシステム
US9110829B2 (en) MRAM smart bit write algorithm with error correction parity bits
JP2013518359A (ja) データ状態に固有の失敗の計数に基づく不揮発性メモリのデータ復旧
US8054678B2 (en) Stuck-at defect condition repair for a non-volatile memory cell
JP6190462B2 (ja) 半導体記憶装置
US7706190B2 (en) Method of program-verifying a nonvolatile memory device using subdivided verifications with increasing verify voltages
TWI754369B (zh) 物理不可複製函數代碼生成裝置及其方法
JP2014157650A (ja) 半導体記憶装置
US11393551B2 (en) Memory controller, memory device, and storage device
US10229752B2 (en) Memory device correcting data error of weak cell
CN104969198A (zh) 数据路径完整性验证
US9502130B2 (en) Semiconductor memory device
US10403358B2 (en) Semiconductor memory device
US10338984B2 (en) Storage control apparatus, storage apparatus, and storage control method
JP6971418B2 (ja) 小さなスイングの電圧感知を提供するセンスアンプアーキテクチャ
US20050248982A1 (en) Method and circuit for verifying and eventually substituting defective reference cells of a memory
JP2016062463A (ja) メモリシステム、誤り訂正装置、および誤り訂正方法
US11915752B2 (en) Resistive memory with enhanced redundancy writing

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15515359

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 15845528

Country of ref document: EP

Kind code of ref document: A1