CN111243647B - 闪存编程参数确定方法、装置、电子设备及存储介质 - Google Patents
闪存编程参数确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111243647B CN111243647B CN202010002876.5A CN202010002876A CN111243647B CN 111243647 B CN111243647 B CN 111243647B CN 202010002876 A CN202010002876 A CN 202010002876A CN 111243647 B CN111243647 B CN 111243647B
- Authority
- CN
- China
- Prior art keywords
- programming parameter
- programming
- test result
- parameter group
- flash memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 174
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 60
- 230000002068 genetic effect Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 26
- 238000013101 initial test Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 9
- 230000007614 genetic variation Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 17
- 238000005457 optimization Methods 0.000 abstract description 16
- 238000004904 shortening Methods 0.000 abstract description 5
- 125000004122 cyclic group Chemical group 0.000 abstract description 3
- 238000011161 development Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 238000009826 distribution Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013400 design of experiment Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本申请提供一种闪存编程参数确定方法、装置、电子设备及存储介质。本申请提供的闪存编程参数确定方法,包括:先执行第一编程参数组后生成第一测试结果文件,然后根据第一测试结果以及预设遗传算法确定第二编程参数组,再执行第二编程参数组以生成第二测试结果文件,并进行循环优化,从而最后根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,其中,预配置编程参数组用于配置闪存的各个编程参数。本申请提供的闪存编程参数确定方法,可以快速高效地调整编程参数,达到缩短闪存编程参数优化时间的目的,减少在闪存开发过程中预配置编程参数组确定过程中的人力投入。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种闪存编程参数确定方法、装置、电子设备及存储介质。
背景技术
目前,Nand闪存以其容量较大、改写速度快等优点在业界得到广泛的应用。
为了充分挖掘存储单元的价值,Nand闪存的编程方式也从单层单元(Single-Level Cell,简称SLC)到双层单元(Multi-Level Cell,简称MLC),再到三层单元(Triple-Level Cell,简称TLC)。而随着编程方式的升级,各编程态的阈值电压也分布越来越靠近,进而导致相对的阈值电压分布容错余量减少,造成Nand闪存芯片的可靠性随之降低。而Nand闪存设计的编程算法中包含了大量的可调整参数用于优化Nand闪存的编程分布态。
然而,上述的闪存编程参数多达上百个,且每一个都会给编程操作带来不同的效果,因此,如何快速高效地调整编程参数,达到缩短Nand闪存优化时间的目的,成为困扰业界的难题。
发明内容
本申请提供一种闪存编程参数确定方法、装置、电子设备及存储介质,以高效地调整并优化闪存的编程参数,从而减少人力投入。
第一方面,本申请提供一种闪存编程参数确定方法,包括:
根据第一测试结果文件以及预设遗传算法确定第二编程参数组,其中,所述第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,所述第一编程参数组与所述第二编程参数组为各个编程参数相邻两次的赋值集合;
接收第二测试结果文件,所述第二测试结果文件用于记录所述测试机台执行所述第二编程参数组后的测试结果;
根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,所述预配置编程参数组用于配置闪存的各个编程参数。
在一种可能的设计中,所述的闪存编程参数确定方法,还包括:
根据所述测试结果文件以及预设加权函数计算测试结果分数值。
在一种可能的设计中,在所述根据第一测试结果文件以及预设遗传算法确定第二编程参数组之前,还包括:
随机生成多个初始编程参数组;
发送所述多个初始编程参数组,以使所述测试机台分别执行每组初始编程参数组,以生成每个初始编程参数组对应的初始测试结果;
接收初始测试结果,并计算每个初始测试结果对应的测试结果分数值;
根据测试结果分数值确定多个待交叉编程参数组;
利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组;
发送所述交叉后编程参数组;
接收所述第一测试结果文件,其中,所述第一编程参数组为所述交叉后编程参数组。
在一种可能的设计中,在所述利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组之后,还包括:
利用所述预设遗传算法对所述交叉后编程参数组进行遗传变异,以生成变异后编程参数组;
发送所述变异后编程参数组;
接收所述第一测试结果文件,其中,所述第一编程参数组为所述变异后编程参数组。
在一种可能的设计中,所述根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,包括:
根据所述预设聚类算法将所述多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围;
根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例;
确定所述优质比例高于预设比例值的类别所对应的编程参数组数值范围;
根据所述编程参数组数值范围确定所述预配置编程参数组。
在一种可能的设计中,所述编程参数包括第一参数、第二参数、第三参数以及第四参数;
其中,所述第一参数用于表征闪存的数据读取性能,所述第二参数用于表征闪存的数据写入性能,所述第三参数用于表征闪存的数据擦除性能,所述第四参数用于表征闪存的运行稳定性能。
第二方面,本发明还提供一种闪存编程参数确定装置,包括:
处理模块,用于根据第一测试结果文件以及预设遗传算法确定第二编程参数组,其中,所述第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,所述第一编程参数组与所述第二编程参数组为各个编程参数相邻两次的赋值集合;
接收模块,用于接收第二测试结果文件,所述第二测试结果文件用于记录所述测试机台执行所述第二编程参数组后的测试结果;
所述处理模块,还用于根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,所述预配置编程参数组用于配置闪存的各个编程参数。
在一种可能的设计中,所述处理模块,还用于根据所述测试结果文件以及预设加权函数计算测试结果分数值。
在一种可能的设计中,所述处理模块,还用于随机生成多个初始编程参数组;
所述闪存编程参数确定装置,还包括:
发送模块,用于发送所述多个初始编程参数组,以使所述测试机台分别执行每组初始编程参数组,以生成每个初始编程参数组对应的初始测试结果;
所述接收模块,还用于接收初始测试结果,并计算每个初始测试结果对应的测试结果分数值;
所述处理模块,还用于根据测试结果分数值确定多个待交叉编程参数组;
所述处理模块,还用于利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组;
所述发送模块,还用于发送所述交叉后编程参数组;
所述接收模块,还用于接收所述第一测试结果文件,其中,所述第一编程参数组为所述交叉后编程参数组。
在一种可能的设计中,所述处理模块,还用于利用所述预设遗传算法对所述交叉后编程参数组进行遗传变异,以生成变异后编程参数组;
所述发送模块,还用于发送所述变异后编程参数组;
所述接收模块,还用于接收所述第一测试结果文件,其中,所述第一编程参数组为所述变异后编程参数组。
在一种可能的设计中,所述处理模块,具体用于:
根据所述预设聚类算法将所述多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围;
根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例;
确定所述优质比例高于预设比例值的类别所对应的编程参数组数值范围;
根据所述编程参数组数值范围确定所述预配置编程参数组。
在一种可能的设计中,所述编程参数包括第一参数、第二参数、第三参数以及第四参数;
其中,所述第一参数用于表征闪存的数据读取性能,所述第二参数用于表征闪存的数据写入性能,所述第三参数用于表征闪存的数据擦除性能,所述第四参数用于表征闪存的运行稳定性能。
第三方面,本申请还提供一种电子设备,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面提供的任意一种可能的方法。
第四方面,本申请还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面提供的任意一种可能的方法。
本申请提供一种闪存编程参数确定方法、装置、电子设备及存储介质,通过先执行第一编程参数组后生成第一测试结果文件,然后根据第一测试结果以及预设遗传算法确定第二编程参数组,再执行第二编程参数组以生成第二测试结果文件,并进行循环优化,从而最后根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,其中,预配置编程参数组用于配置闪存的各个编程参数,进而快速高效地调整编程参数,达到缩短闪存编程参数优化时间的目的,减少在闪存开发过程中预配置编程参数组确定过程中的人力投入。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的闪存编程参数确定方法的应用场景图;
图2为本申请提供的闪存编程参数确定方法的测试交互过程图;
图3为本申请提供的闪存编程参数确定方法的流程示意图;
图4为图3所示实施例中第一测试结果文件的生成流程示意图;
图5为图4所示实施例中遗传算法的参数配置图;
图6为图3所示实施例中编程参数组优化聚类过程示意图;
图7为本申请提供的闪存编程参数确定装置的结构示意图;
图8为本申请提供的一种电子设备的结果示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
目前,Nand闪存以其容量较大、改写速度快等优点在业界得到广泛的应用。为了充分挖掘存储单元的价值,Nand闪存的编程方式也从单层单元(Single-Level Cell,简称SLC)到双层单元(Multi-Level Cell,简称MLC),再到三层单元(Triple-Level Cell,简称TLC)。而随着编程方式的升级,各编程态的阈值电压也分布越来越靠近,进而导致相对的阈值电压分布容错余量减少,造成Nand闪存芯片的可靠性随之降低。而Nand闪存设计的编程算法中包含了大量的可调整参数用于优化Nand闪存的编程分布态。然而,上述的闪存编程参数多达上百个,且每一个都会给编程操作带来不同的效果,因此,如何快速高效地调整编程参数,达到缩短Nand闪存优化时间的目的,成为困扰业界的难题。
现有技术中,对于Nand闪存的编程参数优化调整,都是通过人工手动的方式。人工通过实验设计(Design of Experiment,简称DOE)的方式,寻找每个编程参数对于结果的影响。但是,由于可调编程参数数量众多,通常是在300个以上,并且,结果判断标准也不是单维度(例如:读、写、擦除、稳定性等)。因此,需要大量实验,且对工程师经验的要求非常高,通常是根据有经验的工程师的大量积累,大致判断某些参数大概在某些范围内比较可靠。
此外,作为同产品的Nand闪存的预配置编程参数组通常是一样的,其中,预配置编程参数组用于配置闪存的各个编程参数。但是,产品的批次与批次之间、晶圆(wafer)与晶圆之间、同晶圆上的裸片(die)和裸片之间,由于工艺制程上的差异,可调参数的编程参数不会完全相同。
通常对作为同产品的Nand闪存找到大概的、通用性比较好的、各种读写擦除性能及稳定性都比较好的优化编程参数组,即预配置编程参数组作为初始默认条件。
图1为本申请提供的闪存编程参数确定方法的应用场景图。如图1所示,本实施例提供的闪存编程参数确定方法应用于云端服务器,其中,云端服务器用于生成优化文件(Trim文件),其中,Trim文件包括生成的编程参数组,以及用于解析上一轮测试机台执行Trim文件后生成的日志文件,还用于根据测试机台返回的测试结果文件生成新的优化后的编程参数组。对应的,机台端程序读取Trim文件,并在处理数据后,将指令发送至测试机台中,触发测试。测试机台在执行测试任务后,机台端程序生成日志文件,转换程序提取日志文件的内容,转换成结构化文件存储至大数据平台中。通过上述两个云端服务器和测试机台相互配合,循环执行,达到逐步优化编程参数组条件的目的。
图2为本申请提供的闪存编程参数确定方法的测试交互过程图。如图2所示,本实施例中的测试交互包括:
步骤101、云端服务器中的参数调度优化程序生成参数文件,通过数据变更抓取系统,将参数文件传输到机台端。
步骤102、机台端整理数据,并读取参数文件。
步骤103、机台端程序处理数据后,将指令测试机台测试。
步骤104、测试机台完成后,机台端程序生成测试结果文件。
步骤105、通过数据变更抓取测试结果文件。
步骤106、数据变更抓取系统将测试结果文件回传给参数调度优化程序。
步骤107、参数调度优化程序解析测试结果文件,并将测试结果文件存入数据库。
步骤108、参数调度优化程序根据参数的测试结果,重新生成下一轮参数文件供测试机台测试。
循环上述步骤,从而寻找到用于配置闪存的预配置参数组。此外,界面显示系统,还可以通过优化结果可视化组件读取数据库中的数据,以进行统计分析。
图3为本申请提供的闪存编程参数确定方法的流程示意图。如图3所示,本实施例提供的闪存编程参数确定方法,包括:
步骤201、根据第一测试结果以及预设遗传算法确定第二编程参数组。
在本步骤中,可以根据第一测试结果以及预设遗传算法确定第二编程参数组,其中,第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,第一编程参数组与第二编程参数组为各个编程参数相邻两次的赋值集合。值得理解的,根据第一编程参数组所生成的第一测试结果文件用作于下一轮编程参数组,即第二编程参数组的生成依据,而具体的生成方式可以是根据预设的遗传算法进行确定。
步骤202、接收第二测试结果文件。
具体的,接收测试机台发送的第二测试结果文件,其中,第二测试结果文件用于记录测试机台执行第二编程参数组后的测试结果。
其中,在一种可能的设计中,上述的编程参数包括第一参数、第二参数、第三参数以及第四参数,第一参数用于表征闪存的数据读取性能,第二参数用于表征闪存的数据写入性能,第三参数用于表征闪存的数据擦除性能,第四参数用于表征闪存的运行稳定性能。
可选的,在接收到第二测试结果文件之后,还可以根据测试结果以及预设加权函数计算测试结果分数值。例如,可以根据实际产品需求设置不同的权重比例,当所设计的闪存对于数据读取性能要求较高时,可以将读取性能对应的权重比例设置较高,而所设计的闪存对于数据写入性能要求较高时,可以将数据写入性能对应的权重比例设置较高,而所设计的闪存对于数据擦除性能要求较高时,可以将数据擦除性能对应的权重比例设置较高,此外,若所设计的闪存对于运行稳定性能要求较高时,可以将运行稳定性能对应的权重比例设置较高。
此外,还可以是将电压分布、编程时间、测试失败率等因素通过算法转换成不同的指标,然后通过对这些指标创建加权函数来对优化结果进行综合描述,从而实现多目标寻优的目的。
步骤203、根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组。
在本步骤中,根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,预配置编程参数组用于配置闪存的各个编程参数。
值得说明的,上述的预设聚类算法可以为k-means算法,其中,k-means算法是以数据间的距离作为数据对象相似性度量的标准。并且,选择计算数据间距离的计算方式对最后的聚类效果有显著的影响,其中,常用计算距离的方式有:余弦距离、欧式距离、曼哈顿距离等。
在本实施例中,通过先执行第一编程参数组后生成第一测试结果文件,然后根据第一测试结果以及预设遗传算法确定第二编程参数组,再执行第二编程参数组以生成第二测试结果文件,并进行循环优化,从而最后根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,其中,预配置编程参数组用于配置闪存的各个编程参数,进而快速高效地调整编程参数,达到缩短闪存编程参数优化时间的目的,减少在闪存开发过程中预配置编程参数组确定过程中的人力投入。
在上述实施例的基础上,图4为图3所示实施例中第一测试结果文件的生成流程示意图。如图4所示,本实施例中的第一测试结果文件的生成流程,包括:
步骤301、随机生成多个初始编程参数组。
具体的,可以是根据随机算法生成多个初始编程参数组,即对闪存的各个编程参数先进行随机赋值,例如:可以是随机生成100个初始编程参数组。
步骤302、发送多个初始编程参数组。
在生成多个初始编程参数组之后,可以将所生成的初始编程参数组依次发送至测试机台进行测试,以使测试机台分别执行每组初始编程参数组,从而生成每个初始编程参数组对应的初始测试结果。
步骤303、接收初始测试结果。
测试机台在生成每个初始编程参数组对应的初始测试结果之后,将所生成的各个初始测试结果发送至云端服务器中,以使云端服务器根据预设加权函数计算每个初始测试结果对应的测试结果分数值。值得说明的,对于上述100个初始编程参数组中的每个初始编程参数组均会分别生成一个测试结果分数值。
步骤304、根据测试结果分数值确定多个待交叉编程参数组。
在根据预设加权函数计算每个初始测试结果对应的测试结果分数值之后,可以对所有的测试结果分数值进行排序,然后选择分数较高的若干个测试结果分数值所对应的初始编程参数组作为待交叉编程参数组。
例如,可以选择100个测试结果分数值中的前10个测试结果分数值,然后确定该10个测试结果分数值分别对应的初始编程参数组,并将该10个初始编程参数组作为待交叉编程参数组。
步骤305、利用预设遗传算法对多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组。
值得说明的,利用预设遗传算法对多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,其中,遗传交叉可以是将任意两个待交叉编程参数组作为父代数据进行组合,从而生成新的一个交叉后编程参数组作为子代数据。
可选的,在进行遗传交叉之后,可以将交叉后编程参数组发送至测试机台进行测试,其中,上述实施例中的第一编程参数组就可以为交叉后编程参数组,然后在测试机台执行后,生成第一测试结果文件,并将第一测试结果文件反馈至云端服务器中。
步骤306、利用预设遗传算法对交叉后编程参数组进行遗传变异,以生成变异后编程参数组。
而为了能够更好的进行数据优化,提高优化速度和效率,还可以在生成交叉后编程参数组之后,利用预设遗传算法对交叉后编程参数组进行遗传变异,以生成变异后编程参数组。值得理解的,利用预设遗传算法对交叉后编程参数组进行遗传变异可以理解为对于子代数据中的某些赋值进行改变,从而使得变异后编程参数组与父代数据具有更大的差异。
步骤307、发送变异后编程参数组。
步骤308、接收第一测试结果文件。
在进行遗传交叉之后,可以将交叉后编程参数组发送至测试机台进行测试,其中,上述实施例中的第一编程参数组就可以为交叉后编程参数组,然后在测试机台执行后,生成第一测试结果文件,并将第一测试结果文件反馈至云端服务器中。
值得说明的,对于上述实施例中利用预设遗传算法对参数进行优化的过程,所涉及的遗传算子主要分为交叉、变异、选择算子,这三种算子是遗传算法的核心部分。其中,图5为图4所示实施例中遗传算法的参数配置图,本实施例中用到的遗传算法的锦标赛模式的具体参数可以如图5所示。
然后,可以通过循环上述步骤,从而寻找到用于配置闪存的预配置参数组。
而在上述实施例的基础上,图6为图3所示实施例中编程参数组优化聚类过程示意图。如图6所示,本实施例中编程参数组优化聚类过程,可以是通过空间聚类算法,寻找具有普适性的寻优结果,具体的,可以是基于现有的大量测试结果数据,采用入参聚类,出参验证的方式。达到在不重复进行测试机台验证的情况下找到优化参数的分布区间,从而再从优化参数的分布区间中确定具有普适性的预配置编程参数组,进而利用预配置编程参数组对闪存的各个编程参数进行配置。
继续参照图6,本实施例中编程参数组优化聚类过程,包括:
步骤401、入参聚类。
步骤402、判断编程参数组数据距离是否相近。若判断结果为否,则执行步骤404、暂时无法判断,而若判断结果为是,则执行步骤403、对出参结果评估。
具体的,可以是根据预设聚类算法将多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围,而聚类的过程可以是采用k-means算法,以数据间的距离作为数据对象相似性度量的标准,因此选择计算数据间距离的计算方式对最后的聚类效果有显著的影响,常用计算距离的方式有:余弦距离、欧式距离、曼哈顿距离等。
步骤405、判断出参结果是否一致优。若判断结果为否,则执行步骤407、确定入参不在优化区域范围,而若判断结果为是,则执行步骤406、确定入参在优化区域范围。
具体的,根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例,然后,确定优质比例高于预设比例值的类别所对应的编程参数组数值范围,根据编程参数组数值范围确定预配置编程参数组。
值得理解的,可以根据空间聚类方法,将数据距离符合聚类条件的数据作为同类,例如,可以将多个编程参数组分类成10个类别。然后,根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例,例如,可以将预设测试结果分数阈值设置为85分。在选取该测试结果的优质比例高于预设比例值的一组,或者是所有优质比例最高的一组所对应的编程参数组数值范围,作为预配置编程参数组所在的优化区域范围。最后,可以从该组所对应的编程参数组数值范围中选取普适值,例如,可以为中间值,作为预配置编程参数组的赋值。
图7为本申请提供的闪存编程参数确定装置的结构示意图。如图7所示,本实施例提供的闪存编程参数确定装置500,包括:
处理模块502,用于根据第一测试结果以及预设遗传算法确定第二编程参数组,其中,所述第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,所述第一编程参数组与所述第二编程参数组为各个编程参数相邻两次的赋值集合;
接收模块501,用于接收第二测试结果文件,所述第二测试结果文件用于记录所述测试机台执行所述第二编程参数组后的测试结果;
所述处理模块502,还用于根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,所述预配置编程参数组用于配置闪存的各个编程参数。
在一种可能的设计中,所述处理模块502,还用于根据所述测试结果以及预设加权函数计算测试结果分数值。
在一种可能的设计中,所述处理模块502,还用于随机生成多个初始编程参数组;
所述闪存编程参数确定装置500,还包括:
发送模块503,用于发送所述多个初始编程参数组,以使所述测试机台分别执行每组初始编程参数组,以生成每个初始编程参数组对应的初始测试结果;
所述接收模块501,还用于接收初始测试结果,并计算每个初始测试结果对应的测试结果分数值;
所述处理模块502,还用于根据测试结果分数值确定多个待交叉编程参数组;
所述处理模块502,还用于利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组;
所述发送模块503,还用于发送所述交叉后编程参数组;
所述接收模块501,还用于接收所述第一测试结果文件,其中,所述第一编程参数组为所述交叉后编程参数组。
在一种可能的设计中,所述处理模块502,还用于利用所述预设遗传算法对所述交叉后编程参数组进行遗传变异,以生成变异后编程参数组;
所述发送模块503,还用于发送所述变异后编程参数组;
所述接收模块501,还用于接收所述第一测试结果文件,其中,所述第一编程参数组为所述变异后编程参数组。
在一种可能的设计中,所述处理模块502,具体用于:
根据所述预设聚类算法将所述多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围;
根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例;
确定所述优质比例高于预设比例值的类别所对应的编程参数组数值范围;
根据所述编程参数组数值范围确定所述预配置编程参数组。
在一种可能的设计中,所述编程参数包括第一参数、第二参数、第三参数以及第四参数;
其中,所述第一参数用于表征闪存的数据读取性能,所述第二参数用于表征闪存的数据写入性能,所述第三参数用于表征闪存的数据擦除性能,所述第四参数用于表征闪存的运行稳定性能。
以上处理模块502可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
值得说明地,图7所示实施例提供的闪存编程参数确定装置,可用于执行上述任一方法实施例提供的步骤,具体实现方式和技术效果类似,这里不再赘述。
图8为本申请提供的一种电子设备的结果示意图。如图8所示,本实施例提供的一种电子设备600,包括:
处理器601;以及,
存储器602,用于存储所述处理器的可执行指令,该存储器还可以是flash(闪存);
其中,所述处理器601配置为经由执行所述可执行指令来执行上述方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。
当所述存储器602是独立于处理器601之外的器件时,所述电子设备还可以包括:
总线603,用于连接所述处理器601以及所述存储器602。
本实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的方法中的各个步骤。
本实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的方法中的各个步骤。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种闪存编程参数确定方法,其特征在于,包括:
根据第一测试结果文件以及预设遗传算法确定第二编程参数组,其中,所述第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,所述第一编程参数组与所述第二编程参数组为各个编程参数相邻两次的赋值集合;
接收第二测试结果文件,所述第二测试结果文件用于记录所述测试机台执行所述第二编程参数组后的测试结果;
根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,所述预配置编程参数组用于配置闪存的各个编程参数;
所述根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,包括:
根据所述预设聚类算法将所述多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围;
根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例;
确定所述优质比例高于预设比例值的类别所对应的编程参数组数值范围;
根据所述编程参数组数值范围确定所述预配置编程参数组。
2.根据权利要求1所述的闪存编程参数确定方法,其特征在于,还包括:
根据所述测试结果文件以及预设加权函数计算测试结果分数值。
3.根据权利要求2所述的闪存编程参数确定方法,其特征在于,在所述根据第一测试结果文件以及预设遗传算法确定第二编程参数组之前,还包括:
随机生成多个初始编程参数组;
发送所述多个初始编程参数组,以使所述测试机台分别执行每组初始编程参数组,以生成每个初始编程参数组对应的初始测试结果;
接收初始测试结果,并计算每个初始测试结果对应的测试结果分数值;
根据测试结果分数值确定多个待交叉编程参数组;
利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组;
发送所述交叉后编程参数组;
接收所述第一测试结果文件,其中,所述第一编程参数组为所述交叉后编程参数组。
4.根据权利要求3所述的闪存编程参数确定方法,其特征在于,在所述利用所述预设遗传算法对所述多个待交叉编程参数组中的任意两个待交叉编程参数组进行遗传交叉,以生成交叉后编程参数组之后,还包括:
利用所述预设遗传算法对所述交叉后编程参数组进行遗传变异,以生成变异后编程参数组;
发送所述变异后编程参数组;
接收所述第一测试结果文件,其中,所述第一编程参数组为所述变异后编程参数组。
5.根据权利要求1-4中任意一项所述的闪存编程参数确定方法,其特征在于,所述编程参数包括第一参数、第二参数、第三参数以及第四参数;
其中,所述第一参数用于表征闪存的数据读取性能,所述第二参数用于表征闪存的数据写入性能,所述第三参数用于表征闪存的数据擦除性能,所述第四参数用于表征闪存的运行稳定性能。
6.一种闪存编程参数确定装置,其特征在于,包括:
处理模块,用于根据第一测试结果文件以及预设遗传算法确定第二编程参数组,其中,所述第一测试结果文件用于记录测试机台执行第一编程参数组后的测试结果,所述第一编程参数组与所述第二编程参数组为各个编程参数相邻两次的赋值集合;
接收模块,用于接收第二测试结果文件,所述第二测试结果文件用于记录所述测试机台执行所述第二编程参数组后的测试结果;
所述处理模块,还用于根据多个编程参数组、每个编程参数组对应的测试结果以及预设聚类算法确定预配置编程参数组,所述预配置编程参数组用于配置闪存的各个编程参数;
所述处理模块,具体用于:
根据所述预设聚类算法将所述多个编程参数组分类为多个类别,其中,每个类别对应一个编程参数组数值范围;
根据预设测试结果分数阈值确定每个类别下各个编程参数组对应的测试结果的优质比例;
确定所述优质比例高于预设比例值的类别所对应的编程参数组数值范围;
根据所述编程参数组数值范围确定所述预配置编程参数组。
7.根据权利要求6所述的闪存编程参数确定装置,其特征在于,所述处理模块,还用于根据所述测试结果文件以及预设加权函数计算测试结果分数值。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002876.5A CN111243647B (zh) | 2020-01-02 | 2020-01-02 | 闪存编程参数确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002876.5A CN111243647B (zh) | 2020-01-02 | 2020-01-02 | 闪存编程参数确定方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111243647A CN111243647A (zh) | 2020-06-05 |
CN111243647B true CN111243647B (zh) | 2022-05-24 |
Family
ID=70874307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010002876.5A Active CN111243647B (zh) | 2020-01-02 | 2020-01-02 | 闪存编程参数确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111243647B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112530512A (zh) * | 2020-11-11 | 2021-03-19 | 北京泽石科技有限公司 | 闪存存储设备的测试方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IES20100615A2 (en) * | 2009-09-23 | 2011-03-30 | Conor Maurice Ryan | A flash memory device and control method |
US9058289B2 (en) * | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US9569120B2 (en) * | 2014-08-04 | 2017-02-14 | Nvmdurance Limited | Adaptive flash tuning |
US10290347B2 (en) * | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Compacting operating parameter groups in solid state memory devices |
CN110188785A (zh) * | 2019-03-28 | 2019-08-30 | 山东浪潮云信息技术有限公司 | 一种基于遗传算法的数据聚类分析方法 |
CN110459258B (zh) * | 2019-07-15 | 2021-03-12 | 天津大学 | 基于多目标聚类遗传算法的多存储器内建自测试的方法 |
-
2020
- 2020-01-02 CN CN202010002876.5A patent/CN111243647B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111243647A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4075281A1 (en) | Ann-based program test method and test system, and application | |
CN107678972B (zh) | 一种测试用例的评估方法及相关装置 | |
CN102541736A (zh) | 一种软件可靠性执行过程加速测试方法 | |
CN112559364B (zh) | 一种测试用例生成方法、装置、计算机设备和存储介质 | |
CN110991762A (zh) | 预测方法、装置、计算机可读存储介质及电子设备 | |
CN111243647B (zh) | 闪存编程参数确定方法、装置、电子设备及存储介质 | |
CN111459796B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN115662489A (zh) | 硬盘测试方法、装置、电子设备和存储介质 | |
CN107391363B (zh) | 一种测试资源的调度方法、装置及电子设备 | |
CN114219461A (zh) | 基于多生产工况的生产控制方法和装置 | |
CN112527573B (zh) | 一种接口测试方法、装置及存储介质 | |
CN115794570A (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
CN113656354A (zh) | 日志分类方法、系统、计算机设备和可读存储介质 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
CN112802529A (zh) | 一种军工级Nand闪存的检测方法、装置、电子设备及存储介质 | |
CN112817847A (zh) | 数据处理任务的测试方法、装置、电子设备及存储介质 | |
CN112416782A (zh) | 测试结果的验证方法、装置和电子设备 | |
CN110968518A (zh) | 自动化测试日志文件的分析方法及装置 | |
CN113791980B (zh) | 测试用例的转化分析方法、装置、设备及存储介质 | |
CN108985341A (zh) | 一种神经网络模型的训练集评估方法及系统 | |
CN111104334B (zh) | 基于eeprom模块接口软件的测试方法、装置及可读取存储介质 | |
CN113176995A (zh) | 基于测试场景的接口测试方法、装置、设备及介质 | |
CN112817525A (zh) | 闪存芯片可靠性等级预测方法、装置及存储介质 | |
CN117610970B (zh) | 一种数据迁移工作的智能评估方法及系统 | |
CN112035364A (zh) | 功能测试结果评估方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |