一种闪存操作时延仿真方法与流程

文档序号:22737249发布日期:2020-10-31 09:16阅读:148来源:国知局
一种闪存操作时延仿真方法与流程

本发明属于计算机存储领域,具体涉及一种闪存操作时延仿真方法。



背景技术:

随着大数据、物联网、人工智能、5g网络、无人驾驶等热潮的兴起,闪存存储以其高可靠性、低延迟、低功耗等特点逐渐取代传统磁盘存储。以智能型手机、固态硬盘(solidstatedrive,ssd)为核心的个人存储和企业大数据存储需求持续增强。三维闪存的应用一定程度上缓解了大容量存储的带来的挑战,但其性能、可靠性等特性变得日益复杂。而对闪存进行特性分析,有助于设计更高性能、高可靠性的固态硬盘。

但目前闪存的测试与特性分析工作异常复杂,面对种类繁多的芯片型号、闪存类型、以及复杂的堆叠结构,测试工作费时费力,导致特性分析工作举步维艰。而建立闪存仿真器可以有助于快速生成数据用以闪存研究,因此如何利用少量测试数据建立闪存仿真器是目前急待解决的问题。针对现有问题,本发明公开了一种闪存操作时延仿真方法,以解决闪存仿真器中时延仿真的难点,对闪存特性研究、降低闪存测试成本具有重要意义



技术实现要素:

针对以上需求与闪存特性研究,本发明提供了一种闪存操作时延仿真方法。技术原理为,测试少量闪存操作时延数据,利用生成对抗网络,训练得到一个闪存操作时延仿真器,从而快速生成可与真实测试数据媲美的时延仿真数据,实现全闪存仿真器的一个重要组成部分。

本发明提供了一种闪存擦除时延仿真方法,包括以下步骤:

(1)对闪存进行测试,收集闪存块在不同编程/擦除周期下的擦除时延;

(2)设计一个神经网络判别器d1,将一个块在不同编程/擦除周期下的擦除时延作为一个向量输入,如[t(pe=1),t(pe=500),……,t(pe=n)],pe表示编程/擦除周期;

(3)重复输入剩余块的擦除时延数据,对判别器d1进行训练;

(4)设计一个基于神经网络的擦除时延生成器g1;

(5)用生成器g1生成一组数据,并用判别器d1判别这组数据是否能达到仿真效果;

(6)不断调整生成器g1参数,直到生成数据能通过判别器d1。

本发明提供了一种闪存编程时延仿真方法,包括以下步骤:

(1)对闪存进行测试,收集闪存块在不同编程/擦除周期下页的编程时延;

(2)设计一个神经网络判别器d2,将一个块的所有页在不同编程/擦除周期下的编程时延作为一个向量输入,如[t(pe=1,pg=0),t(pe=1,pg=1),……,t(pe=n,pg=m)],pe表示编程/擦除周期,pg表示页编号;

(3)重复输入剩余块的编程时延数据,对判别器d2进行训练;

(4)设计一个基于神经网络的编程时延生成器g2;

(5)用生成器g2生成一组数据,并用判别器d1判别这组数据是否能达到仿真效果;

(6)不断调整生成器g2参数,直到生成数据能通过判别器d2。

优选地,在本发明中,上述两个方法中步骤(1)中测试的块,是在闪存芯片中未经过擦除/编程操作的块随机采样获得的。

优选地,在本发明中,由于一个闪存块包含若干页,一种闪存编程时延仿真方法中步骤(2)中页编程时延组成的向量可以是一个二维的向量(编程/擦除周期,页),也可以调整到一维向量中表示。

优选地,在本发明中,由于一个闪存块包含若干页,闪存页的读取时延仿真方法的步骤与一种闪存编程时延仿真方法的步骤是一致的,但如果测试结果中页的读时延随编程/擦除周期增大保持不变,则无需设计读时延仿真器。

优选地,在本发明中,上述两个方法中测试时写入的数据是随机的,且在不同字线上写入的数据也完全不同,以模拟固态硬盘中存储真实数据的场景。

要求保护的技术方案为:

一种闪存操作时延仿真方法,其中,擦除时延仿真包括以下步骤:

(1)对闪存进行测试,收集闪存块在不同编程/擦除周期下的擦除时延;

(2)设计一个神经网络判别器(d1),将一个块在不同编程/擦除周期下的擦除时延作为一个向量输入,记为t(pe=n),pe表示编程/擦除周期;

(3)重复输入剩余块的擦除时延数据,对判别器(d1)进行训练;

(4)设计一个基于神经网络的擦除时延生成器(g1);

(5)用生成器(g1)生成一组数据,并用判别器(d1)判别这组数据是否能达到仿真效果;

(6)不断调整生成器(g1)参数,直到生成数据能通过判别器(d1)。

一种闪存操作时延仿真方法,其中,编程时延仿真包括以下步骤:

(1)对闪存进行测试,收集闪存块在不同编程/擦除周期下页的编程时延;

(2)设计一个神经网络判别器(d2),将一个块的所有页在不同编程/擦除周期下的编程时延作为一个向量输入;

(3)重复输入剩余块的编程时延数据,对判别器(d2)进行训练;

(4)设计一个基于神经网络的编程时延生成器(g2);

(5)用生成器(g2)生成一组数据,并用判别器(d2)判别这组数据是否能达到仿真效果;

(6)不断调整生成器(g2)参数,直到生成数据能通过判别器(d2)。

优选地,所述步骤(1)中所述闪存块,是在闪存芯片中未经过擦除/编程操作的块随机采样获得的。

优选地,编程时延仿真步骤(2)中所述的向量可以是一个二维的向量表示,也可以是一维向量表示;二维的向量记为t(pe=n,pg=m)],pe表示编程/擦除周期,pg表示页编号。

优选地,编程时延仿真中闪存页的读取时延仿真步骤同编程时延仿真的步骤是一致的,但如果测试结果中页的读时延随编程/擦除周期增大保持不变,则无需设计读时延仿真器。

优选地,测试时写入的数据是随机的,且在不同字线上写入的数据也完全不同,以模拟固态硬盘中存储真实数据的场景。

本发明的有益效果:

本发明能够通过测试少量闪存操作的编程、擦除时延数据,利用生成对抗网络,快速建立操作时延仿真器,是全闪存仿真器的重要组成部分

附图说明

图1为本发明一种闪存擦除时延仿真方法步骤流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明的整体思路在于,通过闪存测试,获取闪存块在不同编程/擦除周期下的编程时延和擦除时延数据,应用生成对抗网络设计时延生成器与判别器,最终达到快速生成可与真实数据媲美的时延数据。具体地如图1所示,包括以下步骤:

(1)对闪存进行测试,收集闪存块在不同编程/擦除周期下块的擦除时延和页的编程时延;

(2)设计擦除时延和编程时延神经网络判别器d1和d2;

(3)分别输入采集的擦除时延和编程时延数据到步骤(2)对应的判别器中进行训练,如d1中训练的数据格式为[t(pe=1),t(pe=500),……,t(pe=n)],pe表示编程/擦除周期。d2中训练的数据格式为[t(pe=1,pg=0),t(pe=1,pg=1),……,t(pe=n,pg=m)],pe表示编程/擦除周期,pg表示页编号;

(4)设计基于神经网络的擦除时延和编程时延生成器g1和g2;

(5)不断生成数据、调整生成器g1和g2的参数,直到生成数据能通过判别器。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1