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