NOR和NAND闪存性能测评方法与流程

文档序号:11924180阅读:545来源:国知局

本发明涉及一种闪存性能测评方法,特别是涉及一种NOR和NAND闪存性能测评方法。



背景技术:

文献“NOR型FLASH存储器测试技术,电子与封装,2016年3月,Vol16(3),p15-19”公开了采用J750EX系统的DSIO模块动态生成测试矢量进行Flash测试的方法,该方法采用硬件电路对闪存的硬件层进行测试,首先按照J750EX标准方法完成对闪存系统通道及引脚的设置,而后编写测试矢量通过微控制指令设置数据传送触发点向特定引脚发送数据,最后通过判定特定引脚的数据评测闪存硬件情况。此方法是针对Flash的硬件层进行的测试,无法全面地评价闪存的性能。对于闪存的诸如擦除、挂载时间长、能耗特性,该测试无法反映,且无能耗性能测评方面的研究。针对上述问题,本发明通过在对闪存文件系统指标、闪存硬件驱动层指标及闪存能耗指标进行建立及测试的基础上综合考虑,建立了综合的闪存性能测评体系。



技术实现要素:

为了克服现有闪存性能测评方法综合运行能力差的不足,本发明提供一种NOR和NAND闪存性能测评方法。该方法首先测试闪存读写速度U1,再依次测试闪存挂载时间U2、闪存平均损耗U3、闪存内存消耗U4、闪存硬件读/写速度U5、闪存擦除速度U6、闪存擦除能耗U7、闪存硬件读写能耗U8和闪存文件系统能耗U9,最后采用序关系分析法对U1至U9指标进行综合评定。由于采用了针对闪存的读写、加载、擦除及能耗相关的9个指标的综合评测,系统地分析了闪存性能测评中涉及到的读写速度、文件系统运行能力及能耗估算,从文件系统、硬件驱动及能耗三个层面,提出相应的指标体系,最后通过序关系法对其进行了综合评测计算,使得测试结果能够反映闪存读写、加载、擦除及能耗方面的综合能力。

本发明解决其技术问题所采用的技术方案是:一种NOR和NAND闪存性能测评方法,其特点是包括以下步骤:

步骤一、测试闪存读写速度U1,计算表达式如公式(1)所示,其中,Speed是指读/写速度,TotalSize是指实际传输文件大小,TotalTime是指实际测量时间。

Speed=TotalSize/TotalTime (1)

步骤二、测试闪存挂载时间U2,采用多次循环挂载并卸载相应文件系统,求其平均值。挂载时间表达式如公式(2)所示,其中,End_time是在文件系统挂载结束点时间,Start_Time是文件系统挂载起始点时间,M_time为一次文件系统挂载时间。

M_time=End_Time-Start_Time (2)

步骤三、测试闪存平均损耗U3,计算方法如公式(3)、公式(4)所示。磨损均衡差值ε用于定义闪存中擦除次数最多块与擦除次数最少块之间的擦除次数差值。ε值越小,代表闪存系统寿命更长。标准偏差S作为另一个评价平均损耗性能指标,其中n代表闪存的可擦除块数,Ei代表每块的擦除次数,E代表平均地擦除次数,Emax为E最大值Emin为E最小值。

ε=Emax-Emin (3)

步骤四、测试闪存内存消耗U4,通过读取Linux内核下/proc/meminfo文件动态获取此时系统的内存使用情况。测试模块大小时,调用系统调用函数mount挂载文件系统后,对比前后内存空间消耗情况。

步骤五、测试闪存硬件读/写速度U5,计算表达式如公式(5)所示,其中,Speed是指读/写速度,TotalSize是指实际传输文件大小,TotalTime是指实际测量时间。

步骤六、测试闪存擦除速度U6,计算表达式如公式(6)所示,其中,e_speed是指擦除速度,Block_Size是指实际擦除块大小,TotalTime是指实际测量时间。擦除速度测试在硬件层循环读取闪存每块信息,调用API对闪存块进行擦除操作。

步骤七、测试闪存擦除能耗U7,用公式(7)计算,其中E表示能耗,P(t)表示瞬态功率;P表示平均功耗;I为平均电流;V为工作电压,T为运行时间。

步骤八、测试闪存硬件读写能耗U8,在Linux内核中通过MTD层所提供的API获取闪存信息。由于闪存读写能耗属于硬件能耗,因此通过fluke scopmeter表来测试硬件真实能耗。

步骤九、测试闪存文件系统能耗U9,依据文件系统为用户提供的接口函数,对需测定的能耗指标进行量化。其调用函数的能耗Eroutine由节点f0,f1,….fn组成。函数fi的子函数为fj1,fj2….fjm,指令的单时钟周期能耗为ei,则其调用函数的能耗计算公式如(8)所示。

针对各函数,采取多次循环测量能耗求平均值。

步骤十、采用序关系分析法对U1至U9指标进行综合评定,综合评价值计算表达式为(9)所示:

Z=∑i=1xiwi (9)

其中xi为需要计算的各个指标,权重系数wk的计算方法如公式(11)、(12)所示,评价指标之间相对重要程度式中k=m,m-1,...,3,2,当m较大时,由序关系取rk=1。rk的取值为1.0、1.2、1.4、1.6、1.8。

wk-1=wkrk (12)。

本发明的有益效果是:该方法首先测试闪存读写速度U1,再依次测试闪存挂载时间U2、闪存平均损耗U3、闪存内存消耗U4、闪存硬件读/写速度U5、闪存擦除速度U6、闪存擦除能耗U7、闪存硬件读写能耗U8和闪存文件系统能耗U9,最后采用序关系分析法对U1至U9指标进行综合评定。由于采用了针对闪存的读写、加载、擦除及能耗相关的9个指标的综合评测,系统地分析了闪存性能测评中涉及到的读写速度、文件系统运行能力及能耗估算,从文件系统、硬件驱动及能耗三个层面,提出相应的指标体系,最后通过序关系法对其进行了综合评测计算,使得测试结果能够反映闪存读写、加载、擦除及能耗方面的综合能力。

下面结合具体实施方式对本发明作详细说明。

具体实施方式

本发明NOR和NAND闪存性能测评方法具体步骤如下:

1、读写速度U1测试。

读/写速度表达式如公式(1)所示:

Speed=TotalSize/TotalTime (1)

读写测试方法步骤如下:

1)初始化时间变量与计时器,并设置初始文件大小和块大小。

2)创建相应文件,并将文件写模式设置为非缓存模式。

3)记录时间戳,对文件以设置块大小为单位进行读写操作,读写入数据大小为文件大小。

4)记录时间戳,并删除文件。

5)增加块大小,将2-5步循环,直至块大小为设置最大值。

6)根据公式(1)计算闪存的读写速度。

2、挂载时间U2测试。

多次循环挂载并卸载相应文件系统,求其平均值。挂载时间表达式如公式(2)所示。

M_time=End_Time-Start_Time (2)

挂载时间测试步骤如下:

1)初始化时间变量与计时器及相关参数。

2)依据参数创建相应文件。

3)卸载文件系统,计时开始。

4)挂载文件系统,计时结束。

5)将2-4步循环10次。

6)根据公式(2)计算挂载时间。

3、平均损耗U3测试。

平均损耗测试程序是往闪存中写入数十倍于闪存存储空间数据,数据写入由随机删除文件、创建文件、随机写入文件操作组成,模拟用户使用闪存过程。程序运行过程中,记录闪存每次擦除块的块号,最后输出闪存每擦除块的擦除次数,为了量化测定该性能,制定了两个关注点及指标,磨损均衡差值ε以及擦除标准偏差S来评估闪存文件系统性能,如公式(3)及(4)所示。

ε=Emax-Emin (3)

测试步骤如下:

1)初始化相应参数,获取闪存总容量。

2)随机创建文件,写入数据。

3)随机删除已有文件。

4)随机选择已有文件,进行重写随机数据。

5)重复步骤b-d,直到写入数据总量大于闪存总容量十倍。

6)输出闪存每擦除块的擦除次数。

7)依据公式(3)及(4),计算平均损耗。

4、内存消耗U4测试。

Linux内核通过读取/proc/meminfo文件动态获取此时系统的内存使用情况。测试模块大小时,调用系统调用函数mount挂载文件系统后,对比前后内存空间消耗情况即可;测试运行时内存消耗,在数据写入过程中,动态收集相应内存消耗信息。

5、硬件读/写速度U5测试。

针对硬件读写速度测试,硬件读/写速度表达式如公式(5)所示:

针对硬件层读写速度测试,采用最简单的顺序读写方式。通过硬件层API获得闪存信息后,分别采取以页大小、两页大小及擦除块大小为基本读写单位进行测试。循环对闪存每擦除块进行读写速度测试,遇到坏块跳过。硬件驱动层读写测试时,通过设置写入块和读入块的大小,测试出数据作为输入数据为综合评价提供依据。

6、擦除速度U6测试。

应考虑到闪存是以块为基本单位进行擦除,因此,测试时每次擦除的数据量大小为擦除块的大小。擦除速度表达式如公式(6)所示:

擦除速度测试在硬件层循环读取闪存每块信息,调用API对闪存块进行擦除操作,方法步骤如下:

1)初始化计时器及时间变量。

2)记录时间戳。

3)循环对闪存每擦除块进行擦除操作。

4)记录时间戳。

5)根据公式(6)计算擦除速度。

7、擦除能耗U7测试。

擦除能耗是指闪存将擦除块上所有存储单元数据均置为“1”时产生的能量消耗。通过硬件层API获取闪存信息后,分别对闪存每擦除块进行擦除,循环擦除闪存擦除每块数据产生的能耗,求平均值。硬件能耗的一般模型为如公式(7)所示:

通过硬件测试能耗时,由于电流输入稳定,故测得硬件工作时电压即可由公式获取。测试擦除能耗时,在Linux内核中,通过MTD层所提供的API获取闪存信息。由于闪存擦除能耗是由于需要给闪存源极施加电压产生的能耗,因此通过fluke scopmeter表来测试硬件真实能耗。

8、硬件读写能耗U8测试。

针对NAND闪存以页为基本单位进行读/写操作,设定读写能耗的单位为:uj/page。通过硬件层API获取闪存信息后,获取页大小,循环往每页写入随机数据并记录相应能耗值,直至结束求平均值。同理,对写入随机数据的闪存,循环读取每页数据并记录相应能耗值,求平均值。在Linux内核中测试读写能耗时,通过MTD层所提供的API获取闪存信息。由于闪存读写能耗属于硬件能耗,因此本发明通过fluke scopmeter表来测试硬件真实能耗。

9、文件系统能耗U9测试。

能耗评价的基本单位为:uj。依据文件系统为用户提供的接口函数,对需测定的能耗指标进行量化。依据VFS层需实现的接口函数,选取stat64、open、write、read、close、delete函数进行测试。软件能耗是指令在处理器上执行过程中系统部件消耗的能量。函数能耗通常尤其所有直接调用与子调用的指令能耗总和。其调用函数的能耗计算公式如(8)所示。

针对各函数,采取多次循环测量能耗求平均值。针对write和read函数,其执行时写入和读取数据均为0,这样便于测量文件系统指令能耗而不是闪存硬件读取时的能耗。通过公式(8)估算闪存文件系统所产生的能耗。

10、闪存综合评价。

依据闪存特性对指标重要程度排序如下:

U1>U3>U2>U4>U5>U5>U6>U7>U8>U9

U1至U9的权重系数wk按计算表达式(9)、(10)所示计算

wk-1=wkrk (10)

其中ri的计算公式如表达式(11)所示,k=m,m-1,...,3,2,当m较大时,由序关系取rk=1。rk的可取值为1.0、1.2、1.4、1.6、1.8。

综合评价值计算表达式如公式(12):

Z=Σi=1xiwi (12)

分析得如下结果:

根据公式(9)和公式(10),分别计算出权重:

U1=0.20758,U2=0.14828,U3=0.12356,U4=0.10297,U5=0.10297,U=0.08581,U7=0.08581,U8=0.07151,U9=0.07151

随后,对每项指标进行量化后,依据公式(13)得闪存综合评价计算体系:

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