本发明涉及芯片可靠性,尤其涉及一种阻变存储器芯片的寿命预测及修复方法。
背景技术:
1、阻变存储器(rram)是一种可适用于先进工艺节点下的嵌入式非易失性存储器(nvm),具有低功耗、高可靠性和与cmos工艺的良好兼容性等优点,在物联网终端设备上具有很强的应用价值。但是rram存储芯片普遍面临写入错误、读干扰、读出错误和热稳定性等问题,为rram芯片的规模应用增加了难度。在rram复杂的失效模式中,随着存储单元被连续擦写的次数增多,存在“真失效”和“假失效”两种模式。通过构建失效模型,对存储单元的失效行为进行预测,可以更为有效地分配存储空间。针对预测结果为真失效的存储单元,提前将其存储的数据转移到其他存储单元,可预防数据的丢失;针对预测结果为假失效的存储单元,根据其失效的物理机制,采用施加大于平均电压的reset电压对其进行“复活”,使其导电细丝恢复正常的生长断裂,可提高存储单元阵列的利用率。
2、目前对于rram寿命预测的研究多集中在对单个器件进行物理建模,由于只考虑了存储单元内部的物理量变化和失效机制,忽略了实际芯片中的器件因集成度高规模大造成的差异性,使得基于单个器件的物理模型对于芯片实际寿命的预测没有很高的参考价值。随着机器学习(ml)的不断发展,基于统计数据利用ml对存储单元失效行为建模,为芯片级的失效预测提供了途径。目前针对芯片级寿命预测的研究,只有一篇文章涉及到,但是预测准确率不高且没有对应的优化方案;现有阻止rram芯片单元的失效方式是在存储单元发生假失效后再进行补救,补救的方法也是单纯的加大电压,增加存储窗口,由于不能实现提前预测修复,过大的电压会加速存储单元的老化,反而会减少存储单元寿命。可见,亟需一种阻变存储器芯片的寿命预测方法,在芯片级实现对阻变存储器单元更为准确的失效预测,通过更好的存储空间分配和对存储单元的修复,实现rram芯片的规模应用。
技术实现思路
1、鉴于上述的分析,本发明实施例旨在提供一种阻变存储器的寿命预测及修复方法,用以解决现有rram芯片寿命预测模型预测准确率不高以及现有的针对假失效的存储单元的修复方法难以真正提高rram芯片中存储单元寿命的问题。
2、一方面,本发明实施例提供了一种阻变存储器的寿命预测及修复方法,包括如下步骤:
3、构建模型训练数据集,所述数据集中包括输入数据xt以及真失效或假失效的二分类标注;其中,输入数据xt包括成型电压fvt、归一化置位阻值srt、归一化复位阻值rrt、置位阻值的局部波动性sft、复位阻值的局部波动性rft、置位阻值的全局波动性svart、复位阻值的全局波动性rvart、平均置位电压svolt和平均复位电压rvolt;
4、利用构建的训练数据集对模型m进行训练,所述模型m包括k个参数相同的lstm副本模型{m[0],m[1],……,m[k-1]};不同的副本模型用于对k个存储单元进行独立的向前推理以及误差计算;
5、获取待预测每一个存储单元在正常工作状态下完成一个擦写周期读写操作的实测数据;处理所述实测数据得到输入数据xpt[i];将xpt[i]输入对应的训练好的模型,得到下一个擦写周期t+1该存储单元的预测结果yt[i],并最终确定是否为实际需要修复的假失效存储单元;
6、获取实际需要修复的假失效存储单元的地址;对该存储单元的执行修复操作。
7、进一步的,所述构建模型训练数据集包括:
8、获取原始数据dt;
9、对原始数据进行预处理,得到包含九个维度的输入数据xt={fvt,srt,rrt,sft,rft,svart,rvart,svolt,rvolt};
10、根据预处理后的9个维度的数据,构建数据结构为k×9×t的数据集d1;其中k为rram芯片中存储单元的总数;t为原始数据覆盖的模拟周期数;
11、对数据集d1作真失效或假失效的二分类标注,得到包含模型m的外部输入xt和对应标签ct的模型训练数据集d2。
12、进一步的,所述获取原始数据包括:
13、(1)对rram芯片进行成型操作,使芯片内的各个存储器单元变为导通状态,记录成型操作电压fv;
14、(2)验证成型效果,并记录每一个存储器单元的成型阻值rf以及输出结果o;
15、(3)对成型后的芯片进行置位,记录置位成功时各存储单元的阻值sr_raw和对应的置位电压svol_raw,或记录置位达到预设次数仍未成功时各存储单元的阻值sr_raw和对应的置位电压svol_raw,以及输出结果o;其中的置位成功包括一次置位成功,或经逐步置位,在未达到预设次数成功;
16、(4)对成型后的芯片进行复位,记录复位成功时各存储单元的阻值rr_raw和对应的复位电压rvol_raw,或记录复位达到预设次数仍未成功时各存储单元的阻值rr_raw和对应的复位电压rvol_raw,以及输出结果o;
17、(5)重复执行置位和复位操作,完成一个跨度内的预设循环次数n;
18、具体的,重复(3)~(4)循环,完成预设循环次数循环后,记为完成一个跨度,执行(6);
19、(6)对芯片存储器阵列进行预设次数n的重复读操作以获得计算复位阻值波动性的复位阻值样本rr;
20、(7)对芯片进行置位,记录置位成功时各存储单元的阻值rset和当前置位电压vset,或记录置位达到预设次数仍未成功时各存储单元的阻值rset和当前置位电压vset,以及输出结果o;
21、(8)重复预设次数n的读操作以获得计算置位阻值波动性的置位阻值样本rs;
22、(9)将(3)~(8)记为一个模拟周期,重复t个模拟周期,获得原始数据dt={fv,svol_raw,rvol_raw,sr_raw,rr_raw,rr,rs,rset,vset}t。
23、进一步的,所述输入数据xt包括:
24、(1)fvt表征成型电压,第一个时间片的取值为原始数据中的fv,以后的时间片均置为0;
25、(2)srt表征归一化置位阻值,由原始置位阻值sr_raw的平均值除以rram的稳定低阻rlow后得到;其中rlow为rram芯片正常工作时存储单元的低阻值,也是最稳定状态下的低阻值;
26、(3)rrt表征归一化复位阻值,由原始复位阻值rr_raw的平均值除以rram的稳定高阻rhigh后得到;其中rhigh为rram芯片正常工作时存储单元的高阻值,也是最稳定状态下的高阻值;
27、(4)sft表征存储单元置位阻值的局部波动性,通过对置位阻值样本归一化后与一维边缘检测算子[-1,0,1]进行卷积求和而获得;
28、(5)rft表征存储单元复位阻值的局部波动性,通过对复位阻值样本归一化后与一维边缘检测算子[-1,0,1]进行卷积求和而获得;
29、(6)svart表征存储单元置位阻值的全局波动性,通过对置位阻值样本中的每个阻值归一化后求方差而获得;
30、(7)rvart表征存储单元复位阻值的全局波动性,通过对复位阻值样本中的每个阻值归一化后求方差而获得;
31、(8)svolt表征存储单元的平均置位电压,通过对模拟周期中一个跨度内所有记录的置位电压求均值获得;
32、(9)rvolt表征存储单元的平均复位电压,通过对模拟周期中一个跨度内所有记录的复位电压求均值获得。
33、进一步的,所述真失效或假失效的二分类标注包括:
34、(1)根据第t+1个模拟周期中每一个跨度内的输出结果ot+1[i],判断该存储单元在第t+1个模拟周期的状态结果st[i];判断依据为:
35、a)当ot+1[i]中不包含置位成功或者复位成功时,状态结果st+1[i]=0,表示该存储单元在第t+1个模拟周期发生真失效;
36、b)除了i以外的其他情况,状态结果st+1[i]=1,表示该存储单元在第t+1个模拟周期发生假失效;
37、(2)根据状态结果st+1[i],对xt[i]标注对应的标签其中上角标0和1为二维向量的索引值;标注方法为:
38、i.当状态结果st+1[i]=0时,xt[i]对应的标签ct[i]=[1,0]t;
39、ii.当状态结果st+1[i]=1时,xt[i]对应的标签ct[i]=[0,1]t;
40、(3)以时间片为单位构建t个k×2的矩阵作为模型m的外部输入xt对应的标签ct,其中ct={c[0],c[1],……,c[k-1]}t;xt和对应的标签ct组成模型训练数据d2_t,以时间片为单位构建t个d2_t作为模型训练数据集d2,其中d2={d2_0,d2_1,……,d2_t-1}。
41、进一步的,所述模型m包括:
42、所述模型m基于lstm构建,单元参数包括:单元状态(cell state)ct、隐藏状态(hidden state)ht和状态更新值ut;控制门包括:遗忘门fg、输入门ig和输出门og,其公式分别为:
43、fg=sigmoid(it×wf+bf);
44、ig=sigmoid(it×wi+bi);
45、og=sigmoid(it×wo+bo);
46、其中,wf、wi、wo分别为遗忘门、输入门、输出门对当前时间片的当前神经网络输入it进行仿射变换的权重;bf、bi、bo分别为遗忘门、输入门、输出们仿射变换的偏移量。
47、更进一步的,所述模型m的迭代计算,包括:
48、(1)将每个时间片的输入数据{d2}t,拆分成k个9维向量,分别输入k个参数相同的lstm副本模型;
49、(2)将当前时间片tt的当前外部输入xt[i]与上一个时间片tt-1的隐藏状态ht-1进行进行拼接,得到当前时间片tt的当前神经网络输入it;
50、(3)将当前神经网络输入it进行仿射变换后再经过tanh函数激活,得到当前状态更新值u;
51、(4)将遗忘门fg和上一个时间片tt-1的单元状态ct-1逐点相乘,输入门ig和当前更新值ut逐点相乘,两者结果相加后得到当前单元状态ct;
52、(5)将当前单元状态ct经过tanh激活后,与输出门og进行逐点相乘,得到当前隐藏状态ht;
53、(6)将当前隐藏状态ht输入神经网络进入下一时间片tt+1的循环计算,重复(2)~(5),同时将当前隐藏状态ht通过仿射变换到二维空间,并通过softmax函数激活得到当前二维向量pt,取pt中两元素中元素值大的索引值作为当前模型输出yt[i];
54、(7)将二维向量pt沿时间维度拼接,形成k×ts×2的输出阵列p;将标签阵列ct沿时间维度拼接,形成k×ts×2的输出阵列c;将p与c进行比较,采用交叉熵作为损失函数,其公式如下:
55、
56、其中,ts为训练跨度,其值为训练集dtrain覆盖的时间片的个数;k为rram芯片中存储单元的总数,单个存储单元的标签的数据结构为[c0,c1],i表示第i个存储单元,t表示第t个时间片;
57、反向传播损失并同时更新k个lstm副本的权重,直到损失不再下降得到k个训练好的lstm副本,选择任一副本作为最终模型mtrained;其中mtrained={mtrained_[0],mtrained_[1],……,mtrained_[k-1]};优选的,采用adam优化器进行神经网络的反向传播以及更新权重。
58、进一步的,所述实测数据,包括:
59、(1)获取全新的rram芯片进行成型(forming)操作的成型电压fvp;
60、(2)记录成型后的rram芯片正常工作状态下每一个存储单元在每一个擦写周期的实测数据;其中,一个擦写周期包括:该存储单元完成预设循环次数为n的置位/复位循环操作,记为擦写周期内的一个跨度;完成擦写周期内一个跨度操作后,对该存储单元进行预设次数为n的重复读操作后进行1次置位操作,再进行预设次数为n的重复读操作;所述实测数据dpt包括:擦写周期一个跨度内记录到的置位电压svol_rawp[i]和复位电压rvol_rawp[i],以及置位阻值sr_rawp[i]和复位阻值rr_rawp[i],擦写周期中第一次重复读操作记录的复位阻值样本rpr[i],擦写周期中第二次重复读操作记录的置位阻值样本rps[i],两次重复读操作之间记录的置位阻值rpset[i]和置位电压vpset[i]以及擦写周期内所有的输出结果op[i]。
61、进一步的,所述处理所述实测数据得到输入数据,包括:
62、(1)fvpt[i]表征该存储单元的成型电压,第一个擦写周期的取值为该芯片成型电压fvp,以后的擦写周期该取值均置为0;
63、(2)srpt[i]表征该存储单元的归一化置位阻值,由原始置位阻值sr_rawpt[i]的平均值除以rram的稳定低阻rlow后得到;
64、(3)rrpt[i]表征该存储单元的归一化复位阻值,由原始复位阻值rr_rawpt[i]的平均值除以rram的稳定高阻rhigh后得到;
65、(4)sfpt[i]表征该存储单元置位阻值的局部波动性,通过对置位阻值样本归一化后与一维边缘检测算子[-1,0,1]进行卷积求和而获得;
66、(9)rfpt[i]表征该存储单元复位阻值的局部波动性,通过对复位阻值样本归一化后与一维边缘检测算子[-1,0,1]进行卷积求和而获得;
67、(10)svarpt[i]表征该存储单元置位阻值的全局波动性,通过对置位阻值样本中的每个阻值归一化后求方差而获得;
68、(11)rvart[i]表征该存储单元复位阻值的全局波动性,通过对复位阻值样本中的每个阻值归一化后求方差而获得;
69、(12)svolpt[i]表征该存储单元的平均置位电压,通过对擦写周期中一个跨度内所有记录的置位电压求均值获得;
70、(10)rvolpt[i]表征该存储单元的平均复位电压,通过对擦写周期中一个跨度内所有记录的复位电压求均值获得。
71、进一步的,所述最终确定是否为实际需要修复的假失效存储单元,包括:
72、(1)将经过一个擦写周期后预处理好的数据xpt[i]输入训练好的模型mtrained;
73、(2)mtrained[i]输出yt[i]为下一个擦写周期t+1该存储单元的预测结果;其中,当yt[i]=1表示预测下一时间片该单元假失效,执行(3);当yt[i]=0表示预测下一时间片该单元真失效,将其存储的数据转移至其他存储单元;
74、(3)对yt[i]=1的预测结果进行二次判断,当该存储单元当前擦写周期t的输出结果ot[i]为n+1次置位成功和n次复位成功时,判定该存储单元不需要修复;否则,该存储单元为实际需要修复的假失效存储单元,通过数模转换电路,进行修复操作。
75、进一步的,所述修复操作包括:
76、(1)逐步置位:对于待修复的第i个存储单元,在其位线端施加置位脉冲进行置位操作,再执行读操作读取其阻值;当读取到的阻值小于该rram芯片的稳定低阻rlow时,说明置位操作成功,进行(2);否则,逐次将置位操作的脉冲幅值增加预设增加值,重复置位操作和读操作循环,直到置位操作和读操作累计达到预设循环次数或者读操作读取到的阻值小于该rram芯片的稳定低阻rlow;
77、(2)复位修复:对于待修复的第i个存储单元,在其源线端施加高于当前擦写周期平均复位电压的复位脉冲进行复位操作,再执行读操作读取其阻值;所述复位脉冲电压幅值为rvolpt[i]+预设增加值;其中rvolpt[i]为当前擦写周期一个跨度内该存储单元n次复位操作的平均电压;
78、(3)重复(1)、(2)修复循环,直至修复循环累计预设次数,完成该存储单元的修复操作。
79、与现有技术相比,本发明至少可实现如下有益效果:
80、1、模型的输入采用九维数据,其中和电压相关的三个参数svolt,rvolt,fvt包含了rram芯片的关键外部操作信息,和阻值相关的六个参数srt,rrt,sft,rft,svart,rvart包含了rram芯片存储单元的主要物理状态信息,与rram阻变过程的物理模型十分契合,以此建立的时间序列模型更加科学有效;其中采用两组特征量sft/rft,svart/rvart,分别表征了阻值的局部波动性和全局波动性,将rram的阻值具有随机波动和跃变的性质计入模型的输入,更加全面地反映出rram器件所处的物理状态;
81、2、根据模型的预测结果,对可能发生假失效的存储单元施加特定的电压激励并逐步提升电压的幅值以阻止假失效的发生,与现有的待存储单元发生假失效后再进行补救并采用单纯的加大电压、增加存储窗口的方式相比,不会产生因电压过大加速存储单元的老化,减少存储单元寿命的后果,可显著降低rram芯片存储单元的错误率;
82、3、采用本发明所述方法构建的模型预测率准确率达86.75%,远高于现有的预测模型的65%;同时,相比于现有模型一个预测周期内置位/复位操作次数过多的弊端,本发明的模型实现了对存储单元在较少的置位/复位操作次数下的预测,即,现有模型的一个预测周期需要包含10万量级的置位/复位操作,本发明的模型可将预测周期缩小至500次置位/复位操作,能够更及时的对存储单元进行预测并实施修复。
83、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。