数据写入方法及装置、数据回溯方法及装置

阅读: 评论:0



1.本公开的实施例涉及一种数据写入方法、数据写入装置和数据回溯方法、数据回溯装置。


背景技术:



2.随着信息技术的高速发展,大量的数据被存储在电子系统中。由于系统运行出错、病毒入侵、硬件损坏以及人为操作失误造成数据误删等原因,存储在电子系统中的重要数据往往面临着丢失的风险,导致用户无法直接、快速地获取原来的数据,从而造成一系列的经济损失和安全隐患。
3.目前防止数据丢失的技术主要有两种:数据恢复技术和数据备份技术。数据恢复技术能够基于地址寻回“回”原来的数据,数据备份技术能够基于复刻存储“保存”原来的数据,这两种技术虽然在一定程度上能够防止数据丢失,但仍存在着很多的局限性,并且无法实现真正意义上的数据恢复。


技术实现要素:



4.本公开至少一实施例提供一种数据写入方法,该数据写入方法包括:获取忆阻器中存储的旧数据的第一数据值;根据所述第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,其中,所述忆阻器对于所述多种写操作具有不同的记忆特性。
5.例如,在本公开至少一实施例提供的数据写入方法中,所述多种写操作包括:写入置位操作和写入复位操作,其中,所述写入置位操作使得所述忆阻器的数据值为1,且所述写入置位操作包括第一置位操作和第二置位操作,根据所述忆阻器的记忆特性,所述第一置位操作的第一置位电压大于所述第二置位操作的第二置位电压;所述写入复位操作使得所述忆阻器的数据值为0,且所述写入复位操作包括第一复位操作和第二复位操作,根据所述忆阻器的记忆特性,所述第一复位操作的第一复位电压大于所述第二复位操作的第二复位电压。
6.例如,在本公开至少一实施例提供的数据写入方法中,所述第一置位操作用于使得所述忆阻器的电阻值小于第一目标阻值,所述第二置位操作用于使得所述忆阻器的电阻值小于第二目标阻值,所述第一目标阻值小于所述第二目标阻值;所述第一复位操作用于使得所述忆阻器的电阻值大于第三目标阻值,所述第二复位操作用于使得所述忆阻器的电阻值大于第四目标电阻值,其中,所述第三目标阻值大于所述第四目标阻值。
7.例如,在本公开至少一实施例提供的数据写入方法中,根据所述第一数据值和需要写入的所述新数据的所述第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,包括:当需要写入的所述第二数据值为1且所述第一数据值为1时,对所述忆阻器进行所述第一置位操作;当需要写入的所述第二数据值为1且所述第一数据值为0时,对所述忆阻器进行所述第二置位操作;当需要写入的所述第二
数据值为0且所述第一数据值为1时,对所述忆阻器进行所述第二复位操作;当需要写入的所述第二数据值为0且所述第一数据值为0时,对所述忆阻器进行所述第一复位操作,其中,所述忆阻器在数据值为1时的电阻值小于所述忆阻器在数据值为0时的电阻值。
8.例如,在本公开至少一实施例提供的数据写入方法中,所述忆阻器为非挥发型忆阻器。
9.本公开至少一实施例还提供一种数据回溯方法,该数据回溯方法包括:获取本公开至少一实施例所述的数据写入方法操作后的忆阻器;根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作;获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值。
10.例如,在本公开至少一实施例提供的数据回溯方法中,根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作,包括:读取所述忆阻器的电阻值以获得所述第二数据值;根据所述第二数据值对所述忆阻器进行第三置位操作或第三复位操作。
11.例如,在本公开至少一实施例提供的数据回溯方法中,根据所述第二数据值对所述忆阻器进行第三置位操作或第三复位操作,包括:当所述第二数据值为0时,对所述忆阻器进行n次所述第三置位操作;当所述第二数据值为1时,对所述忆阻器进行m次所述第三复位操作,其中,m和n为大于等于1的整数。
12.例如,在本公开至少一实施例提供的数据回溯方法中,获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值,包括:当所述忆阻器的所述第三数据值为0时,所述旧数据的第一数据值为0;当所述忆阻器的所述第三数据值为1时,所述旧数据的第一数据值为1。
13.本公开至少一实施例还提供一种数据写入装置,该数据写入装置包括:数据获取模块,配置为获取忆阻器中存储的旧数据的第一数据值;数据写入模块,配置为根据所述第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,其中,所述忆阻器对于所述多种写操作具有不同的记忆特性。
14.本公开至少一实施例还提供一种数据回溯装置,该数据回溯装置包括:数据获取模块,配置为获取本公开至少一实施例所述的数据写入方法操作后的所述忆阻器中当前存储的所述第二数据值;数据恢复模块,配置为根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作;数据回溯模块,配置为获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值。
附图说明
15.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
16.图1为一种忆阻器单元的结构的示意图;
17.图2a为不同置位操作下忆阻器的电阻值的累计概率的示意图;
18.图2b为不同复位操作下忆阻器的电阻值的累计概率的示意图;
19.图3a为忆阻器对不同的置位操作的记忆特性的示意图;
20.图3b为忆阻器对不同的复位操作的记忆特性的示意图;
21.图4为本公开至少一实施例提供的一种数据写入方法的示意图;
22.图5为本公开至少一实施例提供的一种数据写入方法的流程图;
23.图6为本公开至少一实施例提供的另一种数据写入方法的示意图;
24.图7a-7b为本公开至少一实施例提供的另一种数据写入方法的流程图;
25.图8为本公开至少一实施例提供的一种数据回溯方法的示意图;
26.图9为本公开至少一实施例提供的一种数据回溯方法的流程图;
27.图10为本公开至少一实施例提供的数据回溯方法的回溯结果的示意图;
28.图11为本公开一实施例提供的一种数据写入装置的结构示意图;
29.图12为本公开一实施例提供的一种数据回溯装置的结构示意图。
具体实施方式
30.为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
31.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
32.为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。
33.目前,防止数据丢失的一种技术解决手段是数据恢复技术,例如人工修复存储模块中的分区表、文件分配表等,对数据重新进行定位、链接和复原。然而,由于数据恢复技术是通过人工手段重新建立数据的链表,使得数据能够再次被检索,从而达到恢复的效果,所以实际上这些数据本身从未“消失”,而是计算机丢失了它们的存储地址,从而无法到它们。因此,数据恢复技术是完全基于旧数据本身未被删除或改写这一客观条件来恢复数据的,一旦该客观条件不成立,数据将无法恢复。例如,一旦旧数据被新数据覆盖,数据恢复技术将完全失效,又例如,在病毒攻击、硬件故障、人为失误等情况下,重要数据将永久性丢失而无法回。
34.防止数据丢失的另一种技术解决手段是数据备份技术,即单独规划出一片存储区域,对重要的数据进行定时复制。然而,一方面,数据备份技术需要将重要数据复刻至另一
独立的存储媒介中,当数据量较大时,数据备份技术十分消耗硬件资源,造成硬件成本高昂。另一方面,数据备份技术需要对备份数据进行周期性地更新,以使得因为重要数据丢失而造成的损失最小,但是数据备份往往具有滞后性,一旦在数据备份之前或者备份过程中发生突发事件,也可能造成重要数据的永久性丢失。因此,数据备份技术虽然能够在一定程度上解决因数据删除或改写而造成的数据丢失,但仍存在丢失的可能性,并且需要在备份时间间隔、存储性能、数据的恢复程度等条件之间进行折衷。
35.为此,本公开至少一实施例提供了一种数据回溯技术,即当存储器中所存储的旧数据被新数据覆盖时,存储器依然可以在需要时恢复并得到旧数据的技术。例如,存储器第一次被写入数据[a],之后第二次被写入数据[b],且第二次写入的数据[b]完全覆盖原来的数据[a],本公开至少一实施例提供的数据回溯技术可以在需要恢复数据[a]时向前回溯一次就直接恢复并得到数据[a]。
[0036]
并且,本公开至少一实施例提供的数据回溯技术基于具有记忆特性的忆阻器以及数据写入方法和数据回溯方法,该数据写入方法可以将数据[a]和数据[b]先后写入同一忆阻器中,并可正常读取和使用数据[b],忆阻器记忆了对应采用不同写操作写入的数据[a],从而使得在需要进行数据恢复时可以通过数据回溯方法向前回溯得到之前的数据[a]。
[0037]
本公开至少一实施例提供的数据写入方法包括:获取忆阻器中存储的旧数据的第一数据值;根据第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对忆阻器进行选择的写操作以写入第二数据值,其中,忆阻器对于多种写操作具有不同的记忆特性。该数据写入方法依靠忆阻器的记忆特性使用特定的写操作来实现数据写入,可以为之前的旧数据的回溯和恢复提供前提条件,同时不影响之后的新数据的正常读取和使用。
[0038]
本公开至少一实施例提供的数据回溯方法包括:获取本公开至少一实施例的数据写入方法操作后的忆阻器;根据忆阻器中当前存储的第二数据值,从多种恢复操作中选择一种恢复操作,对忆阻器进行所选择的恢复操作;获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于第三数据值获得旧数据的第一数据值。该数据回溯方法不依赖于“旧数据本身未被删除或改写”这一客观条件,并且不需要额外的硬件存储空间,极大地提升了旧数据的可恢复性,降低了数据丢失的风险,提高了计算机系统的可靠性。
[0039]
因此,本公开至少一实施例提供的基于忆阻器的数据回溯技术能够在忆阻器被写入新数据时,利用忆阻器自身对历史操作的记忆特性恢复出被覆盖的旧数据,具有成本低、实时性强、对系统性能影响小等特点。
[0040]
图1为一种忆阻器存储单元的结构示意图。如图1中的(a)~(c)所示,该忆阻器存储单元可以是1t1r结构,即包括一个晶体管t和一个忆阻器r。
[0041]
如图1中的(a)所示,忆阻器r可以包括阻变层111、功能层112和位于两侧的上电极113与下电极114。其中,功能层112为可选层,可以根据忆阻器性能的优化方向决定添加与否,并对其进行相应设计。阻变层111例如可以是单层单一种类二元金属氧化物(例如nio、alox等)、石墨烯氧化物、多元钙钛矿氧化物(例如sto、szo、pcmo等),也可以是多层上述物质的叠层,例如可以是tixn与alox的叠层。
[0042]
例如当晶体管t采用n型晶体管时,其栅极和字线端wl连接,例如字线端wl输入高电平时晶体管t导通,晶体管t的第一极可以是源极并被配置为和源线端sl连接,晶体管t的
第二极可以是漏极并被配置为和忆阻器r的下电极114(例如负极)连接,忆阻器r的上电极113(例如正极)和位线端bl连接。例如,当晶体管t采用p型晶体管时(图中未示出),其栅极和字线端wl连接,例如字线端wl输入低电平时晶体管t导通,晶体管t的第一极可以是漏极并被配置为和源线端sl连接,晶体管t的第二极可以是源极并被配置为和忆阻器r的下电极114(例如负极)连接,忆阻器r的上电极113(例如正极)和位线端bl连接。需要说明的是,该忆阻器存储单元的结构还可以实现为其他结构,例如忆阻器r的第二极与源线端sl连接的结构等,本公开的实施例对此不作限制。
[0043]
字线端wl的作用是对晶体管t的栅极施加相应电压,从而控制晶体管t导通或关闭。在对忆阻器r进行操作时,例如进行读操作或写操作时,均需要先开启晶体管t,即需要通过字线端wl对晶体管t的栅极施加导通电压。在晶体管t导通后,可以在源线端sl和位线端bl向忆阻器r施加电压,以改变忆阻器r的阻态。例如,可以在字线端wl和位线端bl同时施加电压,以使得忆阻器r的电阻值越来越小,即忆阻器r从高阻态变为低阻态,忆阻器r从高阻态变为低阻态的操作被称为写入置位(set)操作;例如,可以通过字线端wl和源线端sl同时施加电压,以使得忆阻器r的电阻值越来越大,即忆阻器r从低阻态变为高阻态,忆阻器r从低阻态变为高阻态的操作被称为写入复位(reset)操作。例如,如图1中的(b)所示,可以在字线端wl和位线端bl施加脉冲电压,源线端sl接地,即对忆阻器r进行写入置位操作,以使得忆阻器r处于低阻态;例如,如图1中的(c)所示,可以在字线端wl和源线端sl施加脉冲电压,位线端bl接地,即对忆阻器r进行写入复位操作,以使得忆阻器r处于高阻态。
[0044]
在本公开至少一实施例中,将忆阻器的低阻态称作“1态”,用于存储数据1,即对忆阻器进行写入置位操作可以使得忆阻器对应的数据值为1,将忆阻器的高阻态称为“0态”,用于存储数据0,即对忆阻器进行写入复位操作可以使得忆阻器对应的数据值为0。
[0045]
在本公开至少一实施例中,可以预设目标电阻值来区分忆阻器的低阻态和高阻态。例如,预设目标电阻值为100kω,则电阻值小于100kω的忆阻器处于“1态”,对应的数据值为1,电阻值大于100kω的忆阻器处于“0态”,对应的数据值为0。预设的目标电阻值可以根据忆阻器的实际特性设置,本公开的实施例对此不作限制。
[0046]
在本公开至少一实施例中的忆阻器可以是阻变忆阻器,例如非挥发型忆阻器或者阈值开关型忆阻器。本公开至少一实施例中的忆阻器具有记忆特性,并且具有较好的数据保持性,能够在外加电压激励信号作用下改变忆阻器的电导状态,并且在无外界电信号激励下能够保持电导状态,例如,导电细丝型器件或mott器件。
[0047]
对于具有记忆特性的忆阻器,例如非挥发型忆阻器,不同的写操作条件对于忆阻器的电阻值的影响不同。例如,写入置位操作可以使得忆阻器处于低阻态,更进一步地,在字线端和位线端施加不同的脉冲幅值和脉冲宽度的写入置位电压还可以使得处于低阻态的忆阻器的上限电阻值大小不同。
[0048]
需要在此说明的是,由于工艺误差和外界因素影响等原因,即使是相同工艺下的多个忆阻器在实际使用时,其电阻值也可能有所不同。虽然在相同的写操作条件下,多个忆阻器的电阻值可能不完全相同,但通常多个忆阻器的电阻值的分布会落在一定的范围内,在本公开的实施例中,“上限电阻值”和“下限电阻值”为相同规格的多个忆阻器在某一电压下的电阻值分布范围的端值。在本公开至少一实施例中,可以基于忆阻器的实际特性确定目标电阻值,并根据忆阻器电阻值分布范围的上限电阻值或下限电阻值与目标电阻值之间
的关系设置不同的写操作条件。
[0049]
在本公开至少一实施例中,根据忆阻器的记忆特性可以将写入置位操作分为第一置位操作和第二置位操作,第一置位操作和第二置位操作用于使得处于低阻态的忆阻器的上限电阻值大小不同。在本公开至少一实施例中,第一置位操作用于使得忆阻器的电阻值小于第一目标阻值,第二置位操作用于使得忆阻器的电阻值小于第二目标阻值,且第一目标阻值小于第二目标阻值。例如,电阻值小于100kω的忆阻器处于低阻态,第一置位操作和第二置位操作均可以使得忆阻器的电阻值小于100kω,但第一置位操作使得忆阻器的上限电阻值不超过第一目标电阻值(例如33kω),第二置位操作使得忆阻器的上限电阻值不超过第二目标电阻值(例如50kω)。
[0050]
在本公开至少一实施例中,第一置位操作可以使得处于低阻态的忆阻器的电阻值更小,因此,第一置位操作也可以称为“强set”操作,经过强set操作后的忆阻器处于“强1态”。第二置位操作可以使得处于低阻态的忆阻器的电阻值更大,因此,第二置位操作也可以称为“弱set”操作,经过弱set操作后的忆阻器处于“弱1态”。
[0051]
在本公开至少一实施例中,第一置位操作的第一置位电压大于第二置位操作的第二置位电压,例如,在字线端wl施加相同脉冲幅值和脉冲宽度的导通电压的情况下,在位线端bl上施加的第一置位电压的脉冲幅值大于第二置位电压的脉冲幅值。
[0052]
例如,如图2a所示,当第一目标阻值为33kω时,选择对100个相同规格(包括尺寸、材料、制备工艺等,下文与之类似)的忆阻器进行写入置位操作中的第一置位操作,该第一置位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值1.8v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值2.2v的电压,也即对100个忆阻器进行强set操作,得到该100个忆阻器的电阻值分布结果如图2a的曲线1所示,该100个忆阻器的电阻值均小于第一目标电阻值33kω,此时,该100个忆阻器均处于强1态。当第二目标阻值为50kω时,选择对100个忆阻器进行写入置位操作中的第二置位操作,该第二置位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值1.8v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值1.8v的电压,也即对100个忆阻器进行弱set操作,得到该100个忆阻器的电阻值分布结果如图2a的曲线2所示,该100个忆阻器的电阻值均小于第一目标电阻值50kω,此时,该100个忆阻器均处于弱1态。这里,不管是处于强1态还是弱1态的忆阻器所对应的数据值均为1。
[0053]
对于具有记忆特性的忆阻器,例如非挥发型忆阻器,不同的写操作条件对于忆阻器的电阻值的影响不同。例如,写入复位操作可以使得忆阻器处于高阻态,更进一步地,在字线端和位线端施加不同的脉冲幅值和脉冲宽度的写入复位电压还可以使得处于高阻态的忆阻器的下限电阻值大小不同。在本公开至少一个实施例中,根据忆阻器的记忆特性可以将写入复位操作分为第一复位操作和第二复位操作,第一复位操作和第二复位操作用于使得处于高阻态的忆阻器的下限电阻值大小不同。在本公开至少一实施例中,第一复位操作用于使得忆阻器的电阻值大于第三目标阻值,第二复位操作用于使得忆阻器的电阻值大于第四目标阻值,且第三目标阻值大于第四目标阻值。例如,电阻值大于100kω的忆阻器处于高阻态,第一复位操作和第二复位操作均可以使得忆阻器的电阻值大于100kω,但第一复位操作使得忆阻器的下限电阻值不低于第一目标电阻值(例如300kω),第二复位操作使得忆阻器的下限电阻值不低于第二目标电阻值(例如200kω)。
[0054]
在本公开至少一实施例中,第一复位操作可以使得处于高阻态的忆阻器的电阻值
更大,因此,第一复位操作也可以称为“强reset”操作,经过强reset操作后的忆阻器处于“强0态”。第二复位操作可以使得处于高阻态的忆阻器的电阻值更小,因此,第二复位操作也可以称为“弱reset”操作,经过弱reset操作后的忆阻器处于“弱0态”。
[0055]
在本公开至少一实施例中,第一复位操作的第一复位电压大于第二复位操作的第二复位电压,例如,在字线端wl施加相同脉冲幅值和脉冲宽度的导通电压的情况下,在位线端bl上施加的第一复位电压的脉冲幅值大于第二复位电压的脉冲幅值。
[0056]
例如,如图2b所示,当第三目标阻值为300kω时,选择对100个相同规格的忆阻器进行写入复位操作中的第一复位操作,该第一复位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值5.0v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值1.8v的电压,也即对100个忆阻器进行强reset操作,得到该100个忆阻器的电阻值分布结果如图2b的曲线4所示,该100个忆阻器的电阻值均大于第三目标电阻值300kω,此时,该100个忆阻器均处于强0态。当第四目标阻值为200kω时,选择对100个忆阻器进行写入复位操作中的第二复位操作,该第二复位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值5.0v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值1.6v的电压,也即对100个忆阻器进行弱reset操作,得到该100个忆阻器的电阻值分布结果如图2b的曲线3所示,该100个忆阻器的电阻值均小于第四目标电阻值200kω,此时,该100个忆阻器均处于弱0态。这里,不管是处于强0态还是弱0态的忆阻器所对应的数据值均为0。
[0057]
在本公开至少一实施例中,忆阻器的记忆特性是指忆阻器能够记忆之前的不同的写操作,之前对忆阻器进行过的历史写操作能对当前的恢复操作的结果产生影响。因此,可以基于该记忆特性对忆阻器进行恢复操作,从而实现数据回溯。在本公开至少一实施例中,恢复操作包括第三置位操作和第三复位操作。恢复操作中的第三置位操作和第三复位操作的操作条件可以根据忆阻器的实际特性进行设置,例如,可以通过调整脉冲宽度、脉冲幅值和脉冲数量(或执行次数)等参数进行设置,以使得忆阻器能够回溯到写操作之前的电阻值状态。
[0058]
在本公开至少一实施例中,恢复操作可以采用与写操作相同的方式施加在忆阻器上,也即,第三置位操作和第三复位操作可以采用与写入置位操作(set)和写入复位操作(reset)相同的实施方式施加在忆阻器上。例如,在图1所示的忆阻器单元中,第三置位操作或第三复位操作可以通过字线端wl和源线端sl对忆阻器施加脉冲电压。但是,恢复操作并不等同于写操作,也即第三置位操作和第三复位操作的操作条件并不等同于写入置位操作和写入复位操作的操作条件。例如,第三置位操作的脉冲宽度和脉冲幅值可以与第一置位操作或第二置位操作的脉冲宽度和脉冲幅值相同,但第三置位操作的脉冲数量(或执行次数,例如10次)要大于第一置位操作和第二置位操作的脉冲数量(或执行次数,例如1次),又例如,第三置位操作与写入置位操作的脉冲数量可以均为1(或执行次数为1次),但第三置位操作的脉冲幅值要大于第一置位操作和第二置位操作的脉冲幅值。第三复位操作的设置与之类似,此处不再赘述。
[0059]
另外,需要说明的是,对于数据回溯后的忆阻器,仅需要区分其电阻值状态是对应于数据值1的“1态”还是对应于数据值0的“0态”即可,而无需进一步区分“强”和“弱”,也即,只需要将数据回溯后的忆阻器的电阻值与预设的目标电阻值进行对比即可,而无需与第一、第二、第三、第四目标电阻值进行对比。这里以及下文中的“1态”均指忆阻器处于低阻
态,即忆阻器的电阻值小于预设的目标电阻值;“0态”均指忆阻器处于高阻态,即忆阻器的电阻值大于预设的目标电阻值。
[0060]
对于进行过不同写入置位操作的忆阻器,对其施加恢复操作中的第三复位操作可以使得忆阻器恢复写入置位操作之前的“1态”或“0态”。例如,对于进行过第一置位操作的当前处于“强1态”的忆阻器,对其施加第三复位操作后,该忆阻器的电阻值处于“1态”,对于进行过第二置位操作的当前处于“弱1态”的忆阻器,对其施加第三复位操作后,该忆阻器的电阻值处于“0态”。
[0061]
例如,如图3a所示,第三复位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值5.0v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值1.8v的电压,脉冲数量为10,也即对100个相同规格的忆阻器进行10次第三复位操作。对100个进行过第一置位操作(强set操作)的忆阻器施加第三复位操作后的结果如图3a的曲线5所示,该100个忆阻器的电阻值均小于预设的目标电阻值100kω,即处于低阻态,也即“1态”。对100个进行过第二置位操作(弱set操作)的忆阻器施加第三复位操作后的结果如图3a的曲线6所示,该100个忆阻器的电阻值均大于预设的目标电阻值100kω,即处于高阻态,也即“0态”。因此,根据忆阻器的记忆特性可知,由于历史写操作为强set操作而处于“强1态”的忆阻器经过复位恢复操作后仍处于“1态”,由于历史写操作为弱set操作而处于“弱1态”的忆阻器经过复位恢复操作后将变成“0态”,由此可以根据忆阻器经过复位恢复操作之后的电阻值状态区分历史写操作是强set操作还是弱set操作。
[0062]
对于进行过不同写入复位操作的忆阻器,对其施加恢复操作中的第三置位操作可以使得忆阻器恢复写入复位操作之前的“1态”或“0态”。例如,对于进行过第一复位操作的当前处于“强0态”的忆阻器,对其施加第三置位操作后,该忆阻器的电阻值处于“0态”,对于进行过第二复位操作的当前处于“弱0态”的忆阻器,对其施加第三置位操作后,该忆阻器的电阻值处于“1态”。
[0063]
例如,如图3b所示,第三置位操作的条件为:在字线端wl施加脉冲宽度50ns、脉冲幅值1.6v的电压,在位线端bl施加脉冲宽度50ns、脉冲幅值2.0v的电压,脉冲数量为10,也即对100个相同规格的忆阻器进行10次第三置位操作。例如,如图3b的曲线8所示,对于100个进行过第一复位操作(强reset操作)的忆阻器施加第三置位操作后,该100个忆阻器的电阻值均大于预设的目标电阻值100kω,即处于高阻态,也即“0态”。如图3b的曲线7所示,对于100个进行过第二复位操作(弱reset操作)的忆阻器施加第三置位操作后,该100个忆阻器的电阻值均小于预设的目标电阻值100kω,即处于低阻态,也即“1态”。因此,根据忆阻器的记忆特性可知,由于历史写操作为强reset操作而处于“强0态”的忆阻器经过置位恢复操作后仍处于“0态”,由于历史写操作为弱reset操作而处于“弱0态”的忆阻器经过置位恢复操作后将变成“1态”,由此可以根据忆阻器经过置位恢复操作之后的电阻值状态区分历史写操作是强reset操作还是弱reset操作。
[0064]
需要注意的是,在本公开的实施例中,忆阻器是否处于“强1态”、“弱1态”或是“强0态”、“弱0态”是由对其施加的写操作决定的,而不是由其电阻值的大小决定的。例如,在如图2a所示的情况下,即使是在不同条件的写入置位操作下,忆阻器的电阻值也可能相同。例如,如图2a的曲线1所示,强set操作后有一定概率的忆阻器的电阻值可能为25kω,如图2a的曲线2所示,弱set操作后也有一定概率的忆阻器的电阻值可能为25kω,但是忆阻器的所
处的状态仅由对其进行的“强set”操作或“弱set”操作决定,而不取决于其电阻值大小。例如,忆阻器a经过强set操作后其电阻值为25kω,忆阻器b经过弱set操作后其电阻值也为25kω,但是此时忆阻器a处于“强1态”,而忆阻器b处于“弱1态”。
[0065]
也就是说,在本公开的实施例中,即使两个忆阻器的电阻值相同,这两个忆阻器所记忆的操作也不一定相同。例如,忆阻器a和忆阻器b的电阻值相同,但忆阻器a是经过强set操作后处于“强1态”,忆阻器b是经过弱set操作后处于“弱1态”,则对忆阻器a和忆阻器b进行相同的恢复操作(第三复位操作)后,忆阻器a将变成“1态”,而忆阻器b将变成“0态”。
[0066]
基于上述忆阻器的记忆特性,本公开的至少一实施例提出了一种数据回溯技术,该数据回溯技术依赖于上述数据写入方法和数据回溯方法,能够实现数据恢复功能,防止重要数据丢失。
[0067]
图4示出了本公开至少一实施例提供的一种数据写入方法的示意图。该数据写入方法包括如下两个步骤:
[0068]
s100:获取忆阻器中存储的旧数据的第一数据值;
[0069]
s200:根据第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对忆阻器进行选择的写操作以写入第二数据值。
[0070]
例如,在本公开至少一实施例中,在数据写入过程中不仅需要获取需要写入的数据值(新数据值),也需要获取忆阻器当前存储的数据值(旧数据值),也即忆阻器中存储的旧数据的第一数据值。例如,在步骤s100中,可以对忆阻器施加读操作电压以读取忆阻器的电阻值,根据读取的忆阻器的电阻值与预设的目标电阻值的大小关系获取忆阻器当前存储的旧数据的第一数据值,例如,当忆阻器的电阻值小于目标电阻值时,忆阻器处于“1态”,则该第一数据值为1,当忆阻器的电阻值大于目标电阻值时,忆阻器处于“0态”,则该第一数据值为0。
[0071]
例如,在步骤s200中,需要写入的新数据的第二数据值可以是1或者0,在写入数据前,根据第二数据值来判断应该选择的写操作,例如,当需要写入的新数据为1时,对忆阻器进行写入置位操作,当需要写入的新数据为0时,对忆阻器进行写入复位操作。
[0072]
例如,写入置位操作包括第一置位操作和第二置位操作,在步骤s200中还需要根据旧数据的第一数据值判断对忆阻器进行哪种置位操作。例如,当需要写入的第二数据值为1且第一数据值为1时,对忆阻器进行第一置位操作(强set操作),以使得忆阻器处于“强1态”;当需要写入的第二数据值为1且第一数据值为0时,对忆阻器进行第二置位操作(弱set操作),以使得忆阻器处于“弱1态”。
[0073]
例如,写入复位操作包括第一复位操作和第二复位操作,在步骤s200中还需要根据旧数据的第一数据值判断对忆阻器进行哪种复位操作。例如,当需要写入的第二数据值为0且第一数据值为1时,对忆阻器进行第二复位操作(弱reset操作),以使得忆阻器处于“弱0态”;当需要写入的第二数据值为0且第一数据值为0时,对忆阻器进行第一复位操作(强reset操作),以使得忆阻器处于“强0态”。
[0074]
本公开至少一实施例提供的数据写入方法基于忆阻器对不同写操作的记忆特性,选择不同的写操作来实现数据写入,可以为数据的回溯和恢复提供前提条件,并且不影响当前存储的数据的正常读取和使用。
[0075]
图5示出了本公开至少一实施例提供的一种数据写入方法的流程图。如图5所示,
数据写入方法包括如下步骤:
[0076]
步骤s110:读取忆阻器的电阻值,以获得忆阻器中存储的旧数据的第一数据值;
[0077]
步骤s210:判断忆阻器当前存储的旧数据的第一数据值为1还是0;
[0078]
步骤s220:获取需要写入的新数据的第二数据值并判断第二数据值为1还是0;
[0079]
步骤s221~步骤s224:根据步骤s210和步骤s220的判断结果选择对忆阻器进行多种写操作中的一种写操作,以写入第二数据值。
[0080]
例如,在图5所示的数据写入方法中,当步骤s210判断当前存储的旧数据的第一数据值为1,并且步骤s220判断需要写入的新数据的第二数据值为1时执行步骤s221,对忆阻器进行强set操作,以使得写入忆阻器的新数据的值为1,同时使得忆阻器处于“强1态”。
[0081]
例如,当步骤s210判断当前存储的旧数据的第一数据值为1,并且步骤s220判断需要写入的新数据的第二数据值为0时执行步骤s224,对忆阻器进行弱reset操作,以使得写入忆阻器的新数据的值为0,同时使得忆阻器处于“弱0态”。
[0082]
例如,当步骤s210判断当前存储的旧数据的第一数据值为0,并且步骤s220判断需要写入的新数据的第二数据值为1时执行步骤s222,对忆阻器进行弱set操作,以使得写入忆阻器的新数据的值为1,同时使得忆阻器处于“弱1态”。
[0083]
例如,当步骤s210判断当前存储的旧数据的第一数据值为0,并且步骤s220判断需要写入的新数据的第二数据值为0时执行步骤s223,对忆阻器进行强reset操作,以使得写入忆阻器的新数据的值为0,同时使得忆阻器处于“强0态”。
[0084]
图6为本公开至少一实施例提供的另一种数据写入方法的示意图,与图5所示的实施例相比,图6中的数据写入方法还包括步骤s300:验证忆阻器是否需要再次进行所选择的写操作。
[0085]
例如,在步骤s300中,可以验证忆阻器的电阻值是否达到了预设的目标电阻值,以及验证数据写入结果是否正确,如果验证得到的数据写入结果正确,则结束本次数据写入,如果验证得到的数据写入结果错误,则再次对忆阻器进行所选择的写操作。该所选择的写操作也即历史写操作,再次进行的写操作使得忆阻器所处于的状态与上一次进行的历史写操作的状态相同,这里描述的状态包括“强1态”、“弱1态”、“强0态”和“弱0态”。
[0086]
本公开至少一实施例提供的数据写入方法可以保证数据写入的准确性,不影响数据的正常读取和使用,如下所述可用于实现数据回溯且不影响数据回溯的正确性,写入忆阻器中的数据能够用于计算或存储,并且具有长时间存储、不易丢失等优点。
[0087]
图7a和图7b为本公开至少一实施例提供的另一种数据写入方法的流程图。与图5相比,在图7a和图7b所示的数据写入方法中,步骤s220(在图7a中为步骤s2201,在图7b中为步骤s2202)可以在步骤s110之前,也即,可以先获取需要写入的新数据的第二数据值并判断第二数据值为1还是0之后再读取忆阻器的电阻值,以获得忆阻器中存储的旧数据的第一数据值。本公开的实施例对于获取第一数据值和第二数据值的先后顺序不作限制。
[0088]
如图7a所示,在步骤s2201获取需要写入的新数据的第二数据值为1后执行步骤s110,根据步骤s110读取的忆阻器的电阻值获得忆阻器中当前存储的数据,然后执行步骤s210:判断忆阻器中当前存储的第一数据值为1还是0。
[0089]
如果忆阻器当前存储的第一数据值为1,则执行步骤s221:对忆阻器进行一次强set操作。如果忆阻器当前存储的第一数据值为0,则执行步骤s222:对忆阻器进行一次弱
set操作。
[0090]
在步骤s310再次读取忆阻器的电阻值,然后执行步骤s321,判断忆阻器的电阻值是否小于预设目标电阻值,也即判断写入忆阻器中的新数据的第二数据值是否为1。如果判断结果是“是”,则结束数据写入。如果判断结果是“否”,则执行步骤s331:再次对忆阻器进行“强set”或“弱set”操作。循环执行步骤s310~步骤s331,直到写入的第二数据值为1为止。
[0091]
在步骤s331中,对忆阻器进行“强set”操作或“弱set”操作取决于执行的是步骤s221还是步骤s222。例如,在步骤s210中,如果忆阻器当前存储的第一数据值为1,则执行步骤s221,对忆阻器进行一次强set操作,在执行完步骤s310和步骤s321之后,如果忆阻器的电阻值未达到预设的目标电阻值,即忆阻器未能处于“1态”,则在步骤s331再次对忆阻器进行强set操作,以使得忆阻器处于“强1态”,由此既能保证数据写入的正确性(写入1),又能保证在对忆阻器进行数据回溯时忆阻器能够回溯到正确的“强1态”。步骤s331中选择进行“弱set”操作的流程与选择进行“强set”操作的流程类似,此处不再赘述。
[0092]
如图7b所示,在步骤s2202获取需要写入的新数据的第二数据值为0后执行步骤s110,根据步骤s110读取的忆阻器的电阻值获得忆阻器中当前存储的数据,然后执行步骤s210:判断忆阻器中当前存储的第一数据值为1还是0。
[0093]
如果忆阻器当前存储的第一数据值为0,则执行步骤s223:对忆阻器进行一次强reset操作。如果忆阻器当前存储的第一数据值为1,则执行步骤s224:对忆阻器进行一次弱reset操作。
[0094]
在步骤s310再次读取忆阻器的电阻值,然后执行步骤s322,判断忆阻器的电阻值是否大于预设目标电阻值,也即判断写入忆阻器中的新数据的第二数据值是否为0。如果判断结果是“是”,则结束数据写入。如果判断结果是“否”,则执行步骤s332:再次对忆阻器进行“强reset”或“弱reset”操作。循环执行步骤s310~步骤s332,直到写入的第二数据值为0为止。
[0095]
在步骤s332中,对忆阻器进行“强reset”操作或“弱reset”操作取决于执行的是步骤s223还是步骤s224。例如,在步骤s210中,如果忆阻器当前存储的第一数据值为0,则执行步骤s223,对忆阻器进行一次强reset操作,在执行完步骤s310和步骤s322之后,如果忆阻器的电阻值未达到预设的目标电阻值,即忆阻器未能处于“0态”,则在步骤s332再次对忆阻器进行强reset操作,以使得忆阻器处于“强0态”,由此既能保证数据写入的正确性(写入0),又能保证在对忆阻器进行数据回溯时忆阻器能够回溯到正确的“强0态”。步骤s332中选择进行“弱reset”操作的流程与选择进行“强reset”操作的流程类似,此处不再赘述。
[0096]
图8为本公开至少一实施例提供的一种数据回溯方法的示意图,该数据回溯方法包括如下三个步骤:
[0097]
步骤s400:获取数据写入方法操作后的忆阻器中当前存储的第二数据值;
[0098]
步骤s500:根据忆阻器中当前存储的第二数据值,从多种恢复操作中选择一种恢复操作,对忆阻器进行所选择的恢复操作;
[0099]
步骤s600:获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于第三数据值获得旧数据的第一数据值。
[0100]
例如,在本公开至少一实施例中,数据回溯方法基于上述数据写入方法,也即在对
忆阻器写入新数据以替代旧数据时,要对忆阻器进行上述数据写入操作,从而使得忆阻器能够处于记忆对应的不同写操作的特殊状态,由此在数据回溯时,能够根据忆阻器所记忆的特殊状态对忆阻器进行不同的恢复操作,根据不同的恢复操作和恢复操作后忆阻器的状态可以得出旧数据的数据值,从而实现数据恢复。
[0101]
例如,在步骤s500中,忆阻器中当前存储的第二数据值即为新数据的第二数据值。例如,当当前存储的第二数据值为0时,对忆阻器进行n次第三置位操作,以恢复旧数据;当当前存储的第二数据值为1时,对忆阻器进行m次第三复位操作,以恢复旧数据。
[0102]
恢复操作的操作条件可以根据实际情况进行设置,并且恢复操作不需要同写操作一样区分“强”和“弱”。例如,在数据回溯时可以对存储装置中的所有忆阻器执行相同的恢复操作,即对所有忆阻器执行相同条件的第三置位操作或第三复位操作。例如,m和n可以相同或不相同,例如,可以对忆阻器进行一次恢复操作,也可以对忆阻器进行多次恢复操作,例如3次、5次、10次等,第三置位操作和第四置位操作的脉冲条件和执行次数(或脉冲数量)与忆阻器的特性有关,能够保证数据可以回溯到正确值即可,本公开的实施例对此不作限制。
[0103]
例如,在步骤s600中,当数据回溯后得到的忆阻器处于“0态”时,也即忆阻器对应的第三数据值为0时,可以确定旧数据为0,当数据回溯后得到的忆阻器处于“1态”时,也即忆阻器对应的第三数据值为1时,可以确定旧数据为1。
[0104]
本公开至少一实施例提供的数据回溯方法能够实时、快速、准确地恢复数据,不占用额外的硬件存储空间,极大地提升了数据的可恢复性,降低了数据丢失的风险,提高了计算机系统的可靠性。
[0105]
图9为本公开至少一实施例提供的一种数据回溯方法的流程图,该数据回溯方法包括如下步骤:
[0106]
步骤s410:读取忆阻器电阻值;
[0107]
步骤s510:根据忆阻器中当前存储的第二数据值,从多种恢复操作中选择一种恢复操作;
[0108]
如果第二数据值为0,则执行步骤s521:对忆阻器进行n次第三置位操作(set操作);
[0109]
如果第二数据值为1,则执行步骤s522:对忆阻器进行m次第三复位操作(reset操作);
[0110]
步骤s610:在执行完恢复操作后再次读取忆阻器的电阻值;
[0111]
步骤s620:获取进行了所选择的恢复操作后的忆阻器当前存储的第三数据值;
[0112]
如果第三数据值为0,则执行步骤s621:输出数据回溯结果0,即旧数据为0;
[0113]
如果第三数据值为1,则执行步骤s622:输出数据回溯结果1,即旧数据为1。
[0114]
例如,如果在步骤s510判断当前第二数据值为0,则在步骤s521对忆阻器进行n=10次的第三置位操作(set操作),如果10次set操作结束后,步骤s610读取得到的忆阻器的电阻值小于预设的目标电阻值,即忆阻器处于低阻态(“1态”),则说明忆阻器曾被“弱reset”操作过,由此可以得到旧数据为1。如果10次set操作结束后,步骤s610读取得到的忆阻器的电阻值大于预设的目标电阻值,即忆阻器处于高阻态(“0态”),则说明忆阻器曾被“强reset”操作过,由此可以得到旧数据为0。
[0115]
例如,如果在步骤s510判断当前第二数据值为1,则在步骤s522对忆阻器进行m=10次的第三复位操作(reset操作),如果10次reset操作结束后,步骤s610读取得到的忆阻器的电阻值大于预设的目标电阻值,即忆阻器处于高阻态(“0态”),则说明忆阻器曾被“弱set”操作过,由此可以得到旧数据为0。如果10次reset操作结束后,步骤s610读取得到的忆阻器的电阻值小于预设的目标电阻值,即忆阻器处于低阻态(“1态”),则说明忆阻器曾被“强set”操作过,由此可以得到旧数据为1。
[0116]
图10展示了由本公开至少一实施例提供的数据回溯方法实现的回溯效果,例如,图10示出了10行10列的数据的示意图,每一个方格表示一个数据值,黑方格表示数据值为“0”,白方格表示数据值为“1”。每个方格的数据值可以由一个忆阻器单元的电阻值表示,例如,忆阻器单元可以包括1t1r结构或2t1r结构,其中,1t1r结构的忆阻器单元包括一个开关晶体管和一个忆阻器,2t1r结构的忆阻器单元包括两个开关晶体管和一个忆阻器。需要说明的是,本公开的实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如mos场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。本公开的实施例对采用的晶体管的类型不作限定。
[0117]
对于一个能够表示如图10所示的10
×
10个数据的忆阻器阵列,该忆阻器阵列包括至少100个忆阻器单元,每个忆阻器单元为“1态”时对应数据值1,即图10中的白方格,每个忆阻器单元为“0态”时对应数据值0,即图中10中的黑方格。
[0118]
例如,在数据写入时,选择“弱reset”操作将旧数据中第一行第一列的白方格(第一数据值为1)覆盖为新数据中的黑方格(第二数据值为0);选择“强reset”操作将旧数据中第一行第二列的黑方格(第一数据值为0)覆盖为新数据中的黑方格(第二数据值为0);选择“弱set”操作将旧数据中第二行第一列的黑方格(第一数据值为0)覆盖为新数据中的白方格(第二数据值为1);选择“强set”操作将旧数据中第二行第二列的白方格(第一数据值为1)覆盖为新数据中的白方格(第二数据值为1)。
[0119]
例如,在数据回溯时,选择第三置位操作对表示第1、3、5、7、9行的数据的忆阻器单元(当前存储数据均为0)进行恢复操作,选择第三复位操作对表示第2、4、6、8、10行的数据的忆阻器单元(当前存储数据均为1)进行恢复操作。最后得到的数据回溯结果与旧数据一致,说明旧数据被成功恢复。因此,本公开至少一实施例提供的数据回溯方法基于忆阻器独特的记忆特性,使得旧数据完全被新数据覆盖后仍能原位实现旧数据的准确恢复,节省了存储空间,降低了系统能耗和数据丢失的风险,提高了系统内重要数据的安全性和稳定性。
[0120]
图11为本公开至少一实施例提供一种数据写入装置10,该数据写入装置10包括:数据获取模块11和数据写入模块12。
[0121]
例如,数据获取模块11配置为获取忆阻器中存储的旧数据的第一数据值。例如,该数据获取模块11可以用于实现图4和图6中的步骤s100,或者可以用于实现图5中的步骤s110,还可以用于实现图7a和图7b中的步骤s310。
[0122]
例如,数据写入模块12配置为根据第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对忆阻器进行选择的写操作以写入第二数据值,其中,忆阻器对于多种写操作具有不同的记忆特性。
[0123]
例如,数据写入装置10还可以包括字线驱动电路、位线驱动电路、源线驱动电路
等,或者通过字线驱动电路、位线驱动电路、源线驱动电路等与忆阻器阵列耦接。例如,字线驱动电路包括多个多路选择器(multiplexer,简称mux),用于切换字线输入电压;位线驱动电路包括多个多路选择器,用于切换位线输入电压;源线驱动电路也包括多个多路选择器,用于切换源线输入电压。
[0124]
例如,数据获取模块11可以根据多路选择器的控制信号读取忆阻器阵列中忆阻器的电阻值,从而获取忆阻器当前对应的数据值。例如,数据写入模块12可以根据字线或位线驱动电路中的多路选择器的控制信号将字线输入电压或位线输入电压切换至相应的电压区间。例如在对忆阻器进行如图2a所示的第一置位操作时,将字线输入电压设置为1.8v,将位线输入电压设置为2.2v。其他写操作的执行与之类似,此处不再赘述。
[0125]
该数据写入装置10的上述组成模块可以被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,上述模块的部分功能可以由专用的数字电路和/或模拟电路实现,也可以由软件代码实现,本公开的实施例对此不作限制。
[0126]
图12为本公开至少一实施例提供一种数据回溯装置20,该数据回溯装置20包括:数据获取模块21、数据恢复模块22和数据回溯模块23。
[0127]
例如,数据获取模块21配置为获取本公开至少一实施例的数据写入方法操作后的忆阻器中当前存储的第二数据值。例如,数据获取模块21可以用于实现图8中的步骤s400或者图9中的步骤s410。例如,该数据获取模块21与图11所示的数据写入装置10中的数据获取模块11可以是同一个模块,也可以是不同的模块。
[0128]
例如,数据恢复模块22配置为根据忆阻器中当前存储的第二数据值,从多种恢复操作中选择一种恢复操作,对忆阻器进行所选择的恢复操作。
[0129]
例如,数据回溯模块23配置为获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于第三数据值获得旧数据的第一数据值。
[0130]
例如,数据回溯装置20还可以包括字线驱动电路、位线驱动电路、源线驱动电路等,或者通过字线驱动电路、位线驱动电路、源线驱动电路等与忆阻器阵列耦接。例如,字线驱动电路包括多个多路选择器(multiplexer,简称mux),用于切换字线输入电压;位线驱动电路包括多个多路选择器,用于切换位线输入电压;源线驱动电路也包括多个多路选择器,用于切换源线输入电压。
[0131]
例如,数据获取模块21可以根据多路选择器的控制信号读取忆阻器阵列中忆阻器的电阻值,从而获取进行了写操作后的忆阻器当前存储的数据值。例如,数据恢复模块22可以根据字线或位线驱动电路中的多路选择器的控制信号将字线输入电压或位线输入电压切换至相应的电压区间。例如在对忆阻器进行如图3a所示的第三复位操作时,将字线输入电压设置为5.0v,将位线输入电压设置为1.8v。例如在对忆阻器进行如图3b所示的第三置位操作时,将字线输入电压设置为1.6v,将位线输入电压设置为2.0v。
[0132]
该数据回溯装置20的上述组成模块可以被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,上述模块的部分功能可以由专用的数字电路和/或模拟电路实现,也可以由软件代码实现,本公开的实施例对此不作限制。
[0133]
需要说明的是,尽管以上在描述数据写入装置10或数据回溯装置20时将其划分为用于分别执行相应处理的模块,但是,本领域技术人员应该清楚的是,各模块所执行的处理也可以在不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。
[0134]
另外,在本公开至少一实施例中,数据写入装置10和数据回溯装置20可以位于同一个存储装置中,由此可以在一个存储装置中实现数据的写入和回溯。数据写入装置10和数据回溯装置20也可以分开设置在不同的存储装置、外围电路或其他存储介质中,以满足不同应用场景下的特定需求,例如,数据回溯装置20可以设置于外围电路中,并与多个存储装置耦接,以根据实际需要选择需要进行数据回溯的存储装置,又例如,数据回溯装置20可以单独设置于包括但不限于移动硬盘、usb存储器、闪存等计算机可读介质中,以用于重要数据或隐私数据的数据恢复。
[0135]
虽然上文中已经用一般性说明及具体实施方式,对本公开作了详尽的描述,但在本公开实施例基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本公开精神的基础上所做的这些修改或改进,均属于本公开要求保护的范围。
[0136]
对于本公开,还有以下几点需要说明:
[0137]
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
[0138]
(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或区域的厚度被放大或缩小,即这些附图并非按照实际的比例绘制。
[0139]
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0140]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

技术特征:


1.一种数据写入方法,包括:获取忆阻器中存储的旧数据的第一数据值;根据所述第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,其中,所述忆阻器对于所述多种写操作具有不同的记忆特性。2.根据权利要求1所述的数据写入方法,其中,所述多种写操作包括:写入置位操作和写入复位操作,其中,所述写入置位操作使得所述忆阻器的数据值为1,且所述写入置位操作包括第一置位操作和第二置位操作,根据所述忆阻器的记忆特性,所述第一置位操作的第一置位电压大于所述第二置位操作的第二置位电压;所述写入复位操作使得所述忆阻器的数据值为0,且所述写入复位操作包括第一复位操作和第二复位操作,根据所述忆阻器的记忆特性,所述第一复位操作的第一复位电压大于所述第二复位操作的第二复位电压。3.根据权利要求2所述的数据写入方法,其中,所述第一置位操作用于使得所述忆阻器的电阻值小于第一目标阻值,所述第二置位操作用于使得所述忆阻器的电阻值小于第二目标阻值,所述第一目标阻值小于所述第二目标阻值;所述第一复位操作用于使得所述忆阻器的电阻值大于第三目标阻值,所述第二复位操作用于使得所述忆阻器的电阻值大于第四目标电阻值,其中,所述第三目标阻值大于所述第四目标阻值。4.根据权利要求2所述的数据写入方法,其中,根据所述第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,包括:当需要写入的所述第二数据值为1且所述第一数据值为1时,对所述忆阻器进行所述第一置位操作;当需要写入的所述第二数据值为1且所述第一数据值为0时,对所述忆阻器进行所述第二置位操作;当需要写入的所述第二数据值为0且所述第一数据值为1时,对所述忆阻器进行所述第二复位操作;当需要写入的所述第二数据值为0且所述第一数据值为0时,对所述忆阻器进行所述第一复位操作,其中,所述忆阻器在数据值为1时的电阻值小于所述忆阻器在数据值为0时的电阻值。5.根据权利要求1-4任一所述的数据写入方法,其中,所述忆阻器为非挥发型忆阻器。6.一种数据回溯方法,包括:获取根据权利要求1-5任一所述的数据写入方法操作后的忆阻器;根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作;获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值。
7.根据权利要求6所述的数据回溯方法,其中,根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作,包括:读取所述忆阻器的电阻值以获得所述第二数据值;根据所述第二数据值对所述忆阻器进行第三置位操作或第三复位操作。8.根据权利要求7所述的数据回溯方法,其中,根据所述第二数据值对所述忆阻器进行第三置位操作或第三复位操作,包括:当所述第二数据值为0时,对所述忆阻器进行n次所述第三置位操作;当所述第二数据值为1时,对所述忆阻器进行m次所述第三复位操作,其中,m和n为大于等于1的整数。9.根据权利要求6所述的数据回溯方法,其中,获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值,包括:当所述忆阻器的所述第三数据值为0时,所述旧数据的第一数据值为0;当所述忆阻器的所述第三数据值为1时,所述旧数据的第一数据值为1。10.一种数据写入装置,包括:数据获取模块,配置为获取忆阻器中存储的旧数据的第一数据值;数据写入模块,配置为根据所述第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对所述忆阻器进行选择的写操作以写入所述第二数据值,其中,所述忆阻器对于所述多种写操作具有不同的记忆特性。11.一种数据回溯装置,包括:数据获取模块,配置为获取根据权利要求1-5任一所述的数据写入方法操作后的所述忆阻器中当前存储的所述第二数据值;数据恢复模块,配置为根据所述忆阻器中当前存储的所述第二数据值,从多种恢复操作中选择一种恢复操作,对所述忆阻器进行所选择的恢复操作;数据回溯模块,配置为获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于所述第三数据值获得所述旧数据的所述第一数据值。

技术总结


一种数据写入方法、数据写入装置和数据回溯方法、数据回溯装置。该数据写入方法包括获取忆阻器中存储的旧数据的第一数据值;根据第一数据值和需要写入的新数据的第二数据值,从多种写操作中选择一种写操作,对忆阻器进行选择的写操作以写入第二数据值,其中,忆阻器对于多种写操作具有不同的记忆特性。该数据回溯方法包括:获取数据写入方法操作后的忆阻器;根据忆阻器中当前存储的第二数据值,从多种恢复操作中选择一种恢复操作,对忆阻器进行所选择的恢复操作;获取进行了所选择的恢复操作后的忆阻器的第三数据值,基于第三数据值获得旧数据的第一数据值。该数据写入方法和数据回溯方法能够防止重要数据丢失,快速恢复数据并节省存储空间。省存储空间。省存储空间。


技术研发人员:

吴华强 林博瀚 高滨 唐建石 钱鹤

受保护的技术使用者:

清华大学

技术研发日:

2022.07.28

技术公布日:

2022/10/18

本文发布于:2022-11-29 00:15:41,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/11709.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   操作   所述   电阻值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图