一种NANDFlash的操作检测方法与流程

文档序号:19179115发布日期:2019-11-20 00:49阅读:359来源:国知局
一种NAND Flash的操作检测方法与流程

本发明涉及一种nandflash的操作检测方法,属于存储器技术领域。



背景技术:

nandflash是一种非易失性随机访问存储介质,广泛应用于ssd、u盘、闪存阵列等固态存储领域。nandflash的基本操作包括读取、写入和擦除,每种操作都需要消耗一定的内部时间,操作的结束标志为r/b信号线为高电平或者checkstatus为ready。传统的操作检测方式是一直对读取、写入、擦写操作进行检测,根据结束标志判断操作是否完成。由于nandflash的读取、写入和擦除的耗时tread<twrite<terase,另外对于不同的block和page,在不同的温度和pe情况下,tread、twrite和terase的时间也不完全相同,因此传统的操作检查方式会造成较长的等待时间,影响nandflash操作的整体性能。



技术实现要素:

本发明要解决的技术问题是提供一种nandflash的操作检测方法,减少操作时多余的等待时间,提高nand操作的整体效率。

为了解决所述技术问题,本发明采用的技术方案是:一种nandflash的操作检测方法,包括以下步骤:s01)、根据操作类型、nandflash所处的温度、磨损次数确定每种操作对应的最大耗时tmax;s02)、根据操作类型确定每种操作对应的检测间隔时间tcheck;s03)、根据最大耗时、检测间隔时间确定每种操作在一段时间内对应的最大检测次数n,s04)、初始化检查次数n,令n=0,每隔tcheck时间检测nandflash的状态,判断操作是否完成,并在每次检测时对检查次数n做加一操作,若操作已经完成则返回命令结束以及完成时的状态;若没有结束则按照检测间隔时间继续检测,当n大于nmaxn时,则返回错误状态或者根据配置进行错误处理。

进一步的,读取操作在一段时间内对应的最大检测次数nread=tmax-read/tr-check,tmax-read是读取操作的最大耗时,tr-check是读取操作的检测间隔时间,读取操作不区分温度和磨损次数情况,只记录一个最大耗时值即可。

进一步的,写入操作在一段时间内对应的最大检测次数nwrite=tmax-pe-temp(write)/tpe-check,tmax-pe-temp(write)是写入操作的最大耗时,tpe-check是写入操作的检测间隔时间,写入操作根据温度和磨损次数分区间统计最大耗时,磨损次数的记录区间为1000次pe,温度统计从40℃开始,40℃以下记录一次,然后每升高10℃为一次记录区间;需要记录内容为:pe在某个区间时,需要进行温度变换,统计每个温度区间的tmax。

进一步的,擦除操作在一段时间内对应的最大检测次数nerase=tmax-pe-temp(erase)/tpe-check,tmax-pe-temp(erase)是擦除操作的最大耗时,tpe-check是擦除操作的检测间隔时间,擦除操作根据温度和磨损次数分区间统计最大耗时,磨损次数的记录区间为1000次pe,温度统计从40℃开始,40℃以下记录一次,然后每升高10℃为一次记录区间;需要记录内容为:pe在某个区间时,需要进行温度变换,统计每个温度区间的tmax。

进一步的,读取操作在读取命令发送完成后进行检查次数的初始化,写入操作在数据传输结束后进行检测次数的初始化,擦除操作在擦除确认命令发送完成后进行检测次数的初始化。

进一步的,操作的结束标志为r/b信号线为高电平或者检测状态为ready。

本发明的有益效果:本方法充分考虑了nandflash所处的温度、磨损次数(pecycles)、nand操作类型(read/write/erase)等因素的影响,通过动态调整nand状态查询的时间间隔,减少了多余的等待时间,提升了nand操作的整体效率。

附图说明

图1为读取操作检测流程图;

图2为写入操作检测流程图;

图3为擦除操作检测流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

实施例

本实施例公开一种nandflash的读取操作检测方法,如图1所示,包括以下步骤:

s11)、在读取确认命令发送完成后,进行检测次数n的初始化,令n=0;

s12)、由于读取操作的最大耗时很短,即tmax(read)时间很短,为了减少tmax统计数量,以及减少不必要的开销,read操作受温度和pe情况影响较小,只记录一个tmax即可。即读取操作的最大耗时tmax-read是一个固定值,读取操作的检测间隔时间tr-check也是一个根据读取操作设定的固定值,因此读取操作在一段时间内对应的检测次数nread=tmax-read/tr-check是一个固定值,在本步骤中,直接使用固定值nread;

s13)、判断检测次数n是否小于步骤s12的nread,如果是则执行步骤s14,如果不是则执行步骤s17;

s14)、在tr-check时间间隔后检查nandflash状态,如果状态为busy则执行步骤s15,如果状态为ready或者错误状态,说明操作结束,则执行步骤s16;

s15)、将n次数加一,然后执行步骤s13;

s16)、返回当前读取到的状态给上层应用,然后整个过程结束;

s17)、此时达到最大检查次数,仍然没有检测到完成或者错误状态,进入超时处理,判断是否设置有超时错误处理,如有有则执行步骤s18,如果没有则执行步骤s19;

s18)、执行重新读取或者新增坏块标记的超时错误处理过程,然后整个过程结束;

s19)、返回超时状态给上层应用,然后整个过程结束。

实施例2

本实施例公开一种nandflash的写入操作检测方法,如图2所示,包括以下步骤:

s21)、在数据全部发送完毕后,进行检测次数n的初始化,令n=0;

s22)、根据nand操作地址当前所处的pe(磨损次数)状态以及当前温度情况确定最大检查次数nwrite,nwrite=tmax-pe-temp(write)/tpe-check,tmax-pe-temp(write)是写入操作的最大耗时,tpe-check是写入操作的检测间隔时间。tmax-pe-temp(write)的具体确认方法是:磨损次数的记录区间为1000次pe,温度统计从40℃开始,40℃以下记录一次,然后每升高10℃为一次记录区间;需要记录内容为:pe在某个区间时,需要进行温度变换,统计每个温度区间的tmax。

s23)、判断检测次数n是否小于步骤s12的nwrite,如果是则执行步骤s14,如果不是则执行步骤s17;

s24)、在tpe-check时间间隔后检查nandflash状态,如果状态为busy则执行步骤s15,如果状态为ready或者错误状态,说明操作结束,则执行步骤s16;

s25)、将n次数加一,然后执行步骤s13;

s26)、返回当前写入的状态给上层应用,然后整个过程结束;

s27)、此时达到最大检查次数,仍然没有检测到完成或者错误状态,进入超时处理,判断是否设置有超时错误处理,如有有则执行步骤s18,如果没有则执行步骤s19;

s28)、执行新增坏块标记并进行数据恢复或者自定义的超时错误处理过程,然后整个过程结束;

s29)、返回超时状态给上层应用,然后整个过程结束。

实施例3

本实施例公开一种擦除操作的检测方法,如图3所示,包括以下步骤:

s31)、在擦除确认命令发送完成后,进行检测次数n的初始化,令n=0;

s32)、根据nand操作地址当前所处的pe(磨损次数)状态以及当前温度情况确定最大检查次数nerase,nerase=tmax-pe-temp(erase)/tpe-check,tmax-pe-temp(erase)是擦除操作的最大耗时,tpe-check是擦除操作的检测间隔时间。tmax-pe-temp(erase)的具体确认方法是:磨损次数的记录区间为1000次pe,温度统计从40℃开始,40℃以下记录一次,然后每升高10℃为一次记录区间;需要记录内容为:pe在某个区间时,需要进行温度变换,统计每个温度区间的tmax。

s33)、判断检测次数n是否小于步骤s12的nerase,如果是则执行步骤s14,如果不是则执行步骤s17;

s34)、在tpe-check时间间隔后检查nandflash状态,如果状态为busy则执行步骤s15,如果状态为ready或者错误状态,说明操作结束,则执行步骤s16;

s35)、将n次数加一,然后执行步骤s13;

s36)、返回当前擦除的状态给上层应用,然后整个过程结束;

s37)、此时达到最大检查次数,仍然没有检测到完成或者错误状态,进入超时处理,判断是否设置有超时错误处理,如有有则执行步骤s18,如果没有则执行步骤s19;

s38)、执行新增坏块标记等超时错误处理过程,然后整个过程结束;

s39)、返回超时状态给上层应用,然后整个过程结束。

在上述三个实施例的操作是否结束的判断中也可以以r/b信号线是否为高电平为标准进行判断。

本方法充分考虑了nandflash所处的温度、磨损次数(pecycles)、nand操作类型(read/write/erase)等因素的影响,通过动态调整nand状态查询的时间间隔,减少了多余的等待时间,提升了nand操作的整体效率。

以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

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