发明内容
本发明实施例的目的在于提供一种寻找多层单元闪存中最低有效位页的方法,旨在解决现有技术中可能由于某些原因无法获得多层单元闪存的存储块中最低有效位页的具体位置。
本发明实施例是这样实现的,一种寻找多层单元闪存中最低有效位页的方法,所述方法包括下述步骤:
步骤①,接收用户发送的数据操作指令,所述数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息;
步骤②,根据所述接收的数据操作指令的信息,测定所述选定存储块中每页的数据操作时间;
步骤③,按照所述测定的每页的数据操作时间的数值从小到大的顺序,从所述测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在所述存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数;
当所述数据操作为数据读取时,所述步骤②具体为:
步骤A1,根据所述数据操作指令的信息,依次执行对所述选定存储块上的数据进行擦除、向所述选定存储块中的每页写入相同的随机数据;
步骤A2,获取所述写入相同的随机数据的选定存储块中的待读取的页的页地址:
步骤A3,根据所述数据操作指令的信息,开始对所述待读取的页的页地址进行读取,同时对所述读取执行过程进行采样,并启动计数器对所述采样次数进行计数直至读取过程完成,停止计数,所述存储块的页的数据读取时间为计数器的计数值乘以采样时间间隔;
步骤A4,判断是否完成所述选定存储块中所有页的数据读取时间的测定,否则重复执行步骤A2和步骤A3;
当所述数据操作为数据写入时,所述步骤②具体为:
步骤B1,根据所述操作指令的信息,对所述选定存储块上的数据进行擦除;
步骤B2,获取所述选定存储块中的待写入页的页地址;
步骤B3,根据所述数据操作指令的信息,开始对所述待写入的页的页地址写入相同的随机数据,同时对所述写入执行过程进行采样,并启动计数器对所述采样次数进行计数直至写入过程完成,停止计数,所述存储块的页的数据写入时间为计数器的计数值乘以采样时间间隔;
步骤B4,判断是否完成所述选定存储块中所有页的数据写入时间的测定,否则重复执行步骤B2和步骤B3。
本发明实施例还提供了一种寻找多层单元闪存中最低有效位页的系统,所述系统包括:
指令接收单元,用于接收用户发送的数据操作指令,所述数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息;
数据操作时间测定单元,用于根据所述接收的数据操作指令的信息,测定所述选定存储块中每页的数据操作时间;
最低有效位页寻找单元,用于按照所述测定的每页的数据操作时间的数值从小到大的顺序,从所述测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在所述存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数;
所述数据操作时间测定单元包括:
初始化模块,用于根据所述数据操作指令的信息,选定待测量存储块,同时对选定存储块执行初始化;
地址获取模块,用于获取所述选定存储块中的待操作页的页地址;
读写执行模块,用于根据所述数据操作指令的信息,开始对所述待操作的页的页地址进行数据操作,同时对所述数据操作执行过程进行采样,并启动计数器对所述采样次数进行计数直至数据操作过程完成,停止计数,所述存储块的页的数据操作时间为计数器的计数值乘以采样时间间隔;
判断模块,用于判断是否完成所述选定存储块中所有页的数据操作时间的测定,否则启动地址获取模块。
在本发明实施例中,当由于某些原因无法获得多层单元闪存的存储块中最低有效位页的具体位置时,通过测定存储块中每页的数据操作时间,根据测定的数据操作时间方便的确定多层单元闪存的存储块中最低有效位页的位置。此外,该方法实现简单,用户可以根据最低有效位页的信息更好的利用多层单元闪存,实现多层单元闪存的最优性能。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过测定多层单元闪存的存储块中每页的数据操作时间,按照测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,方便的确定了多层单元闪存的存储块中最低有效位页的位置。
实施例一
图1示出了本发明第一实施例提供的寻找多层单元闪存中最低有效位页的方法,详述如下:
在步骤S101中,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息。
在本发明实施例中,选定的存储块为有效的存储块,有效的存储块为可以正常擦除、读取和写入数据,并且读取和写入的数据相匹配的存储块。
在步骤S102中,根据接收的数据操作指令的信息,测定选定存储块中每页的数据操作时间。
在本发明实施例中,数据操作时间可以为数据读取时间或者数据写入时间。
在本发明实施例中,可以顺序测定存储块中每页的数据操作时间也可以随机测定存储块中每页的数据操作时间。
在步骤S103中,按照测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
在本发明实施例中,用最低有效位页来描述多层单元闪存中快速且稳定可靠的页,用非最低有效位页来描述多层单元闪存中其它页。
作为本发明的一个实现示例:例如型号为K9GAG08U0E的NAND闪存,该闪存是一个2bit/cell闪存,每个存储块中的页总数为128,每一存储单元存储2位信息,则该NAND闪存中最低有效位页的数量N=128/2=64。
在本发明实施例中,通过测定存储块中每页的数据操作时间,按照测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,方便的确定最低有效位页在每个存储块中的位置,此外,该方法实现简单,用户可以根据最低有效位页的信息更好的利用多层单元闪存,实现多层单元闪存的最优性能。
实施例二
图2示出了本发明第二实施例提供的寻找多层单元闪存中最低有效位页的方法,详述如下:
在步骤S201中,接收用户发送的测量选定存储块中页总数的指令,测量选定存储块中页的总数。
在步骤S202中,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息。
在本发明实施例中,数据操作为数据读取或者数据写入,用户可以测定存储块中每页的数据读取时间,按照测定的每页的数据读取时间的数值从小到大的顺序,从测定的每页的数据读取时间中依次取出数据读取时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址;也可以测定存储块中每页的数据写入时间,按照测定的每页的数据写入时间的数值从小到大的顺序,从测定的每页的数据写入时间中依次取出数据写入时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
在步骤S203中,根据接收的数据操作指令的信息,测定选定存储块中每页的数据操作时间。
在步骤S204中,将测得的数据操作时间按照顺序进行排序。
在本发明实施例中,将测得的数据操作时间按照顺序进行排序,可以是从小到大,也可以是从大到小,旨在为查找符合条件的数据操作时间提供方便,可以根据实际情况的需要任意排序,在此不用以限制本发明。
在本发明实施例中,通过将测得的数据操作时间按照顺序进行排序,可以方便的查找到最低有效位页的位置。
在步骤S205中,按照测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
实施例三
图3本发明第三实施例提供的寻找多层单元闪存中最低有效位页的方法,详述如下:
在步骤S301中,接收用户发送的测量选定存储块中页总数的指令,测量选定存储块中页的总数。
在步骤S302中,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息。
在步骤S303中,根据数据操作指令的信息,依次执行对选定存储块上的数据进行擦除、向选定存储块中的每页写入相同的随机数据。
在步骤S304中,获取选定存储块中的待读取的页的页地址。
在步骤S305中,根据数据操作指令的信息,开始对待读取的页的页地址进行读取,同时对读取执行过程进行采样,并启动计数器对采样次数进行计数直至读取过程完成,停止计数。
在本发明实施例中,接收用户向存储块的页地址发送读取命令执行命令,多层单元闪存的R&B管脚电平会被拉低,开始对存储块的页进行读取,对读取执行过程进行采样,同时启动计数器对采样次数进行计数,等R&B管脚电平被拉高时,读取完成,计数器停止计数。
在步骤S306中,判断是否完成存储块中所有页的数据读取时间的测定,否则执行步骤S304,是则执行步骤S307。
在步骤S307中,将测得的数据读取时间按照顺序进行排序。
在步骤S308中,按照测定的每页的数据读取时间的数值从小到大的顺序,从测定的每页的数据读取时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
在本发明实施例中,通过测定存储块中每页的数据读取时间,按照测定的每页的数据读取时间的数值从小到大的顺序,从测定的每页的数据读取时间中依次取出数据读取时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,方便的确定最低有效位页在每个存储块中的位置。
实施例四
图4为本发明第三实施例提供的寻找多层单元闪存中最低有效位页的方法,详述如下:
在步骤S401中,接收用户发送的测量选定存储块中页总数的指令,测量选定存储块中页的总数。
在步骤S402中,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息。
在步骤S403中,根据数据操作指令的信息,对选定存储块上的数据进行擦除。
在步骤S404中,获取选定存储块中的待写入页的页地址。
在步骤S405中,根据数据操作指令的信息,开始对待写入的页的页地址写入相同的随机数据,同时对写入执行过程进行采样,并启动计数器对采样次数进行计数直至写入过程完成,停止计数。
在本发明实施例中,接收用户向存储块的页地址发送写入命令执行命令,多层单元闪存的R&B管脚电平会被拉低,对写入执行过程进行采样,同时启动计数器对采样次数进行计数,等R&B管脚电平被拉高时,写入完成,计数器停止计数。
在步骤S406中,判断是否完成存储块中所有页的数据写入时间的测定,否则执行步骤S404,是则执行步骤S407。
在步骤S407中,测得的数据写入时间按照顺序进行排序。
在步骤S408中,按照测定的每页的数据写入时间的数值从小到大的顺序,从测定的每页的数据写入时间中依次取出数据写入时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
在本发明实施例中,通过测定存储块中每页的数据写入时间,按照测定的每页的数据写入时间的数值从小到大的顺序,从测定的每页的数据写入时间中依次取出数据写入时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,方便的确定最低有效位页在每个存储块中的位置。
作为本发明的一个实现示例,以型号为K9GAG08U0E的NAND闪存为例,通过测定其数据写入时间来寻找其存储块中的最低有效位页,下面数据为每次测量的计数器的计数值(采样时间间隔为50us):
将上述数据写入时间的测量值进行从小到大排序,从数据我们可以看出,数据写入时间值为06,08的页为最低有效位页。
实施例五
图5为本发明第一实施例提供的寻找多层单元闪存中最低有效位页的系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,寻找多层单元闪存中最低有效位页的系统包括指令接收单元51、数据操作时间测定单元52和最低有效位页寻找单元53。
指令接收单元51,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息;
在本发明实施例中,选定存储块为有效的存储块,有效的存储块为可以正常擦除、读取和写入数据,并且读取和写入的数据相匹配的存储块。
在本发明实施例中,数据操作包括数据读取或者数据写入,用户可以测定存储块中每页的数据读取时间,按照测定的每页的数据读取时间的数值从小到大的顺序,从测定的每页的数据读取时间中依次取出数据读取时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址;也可以测定存储块中每页的数据写入时间,按照测定的每页的数据写入时间的数值从小到大的顺序,从测定的每页的数据写入时间中依次取出数据写入时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
根据指令接收单元51接收的数据操作指令的信息,数据操作时间测定单元52测定选定存储块中每页的数据操作时间;
最低有效位页寻找单元53按照数据操作时间测定单元52测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
实施例六
图6为本发明第二实施例提供的寻找多层单元闪存中最低有效位页的系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,寻找多层单元闪存中最低有效位页的系统包括页总数测量单元61、指令接收单元62、数据操作时间测定单元63、数据操作排序单元64、最低有效位页寻找单元65。
在本发明实施例中,页总数测量单元61接收用户发送的测量选定存储块页总数的指令,测量选定存储块中页的总数。
指令接收单元62,接收用户发送的数据操作指令,数据操作指令包括选定存储块的信息、数据操作方式的信息、开始数据操作的信息;
根据指令接收单元62接收的数据操作指令的信息,数据操作时间测定单元63测定选定存储块中每页的数据操作时间;
数据操作排序单元64将数据操作时间测定单元63测得的数据操作时间按照顺序进行排序。
在本发明实施例中,数据操作排序单元64将数据操作时间测定单元63测得的数据操作时间按照顺序进行排序,可以是从小到大,也可以是从大到小,旨在为查找符合条件的数据操作时间提供方便,可以根据实际情况的需要任意排序,在此不用以限制本发明。
最低有效位页寻找单元53按照数据操作时间测定单元52测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,其中,N为存储块中最低有效位页的数量,N=每一存储块中页的总数/多层单元闪存中每一存储单元存储的位数。
在本发明实施例中,数据操作时间测定单元63还包括初始化模块631、地址获取模块632、读写执行模块633、判断模块634。
初始化模块631根据数据操作指令的信息,确定选定存储块,同时对选定存储块执行初始化。
地址获取模块632获取初始化模块631选定存储块中的待操作页的页地址;
根据数据操作指令的信息,读写执行模块633开始对地址获取模块632获取的待操作的页的页地址进行数据操作,同时对数据操作执行过程进行采样,并启动计数器对采样次数进行计数直至数据操作过程完成,停止计数,存储块的页的数据操作时间为计数器的计数值乘以采样时间间隔;
判断模块634判断是否完成选定存储块中所有页的数据操作时间的测定,否则启动地址获取模块632。
在本发明实施例中,通过将测得的数据操作时间按照顺序进行排序,可以方便的查找到最低有效位页的位置。
实施例七
在本发明实施例中,实施例六中的指令接收单元62、数据操作时间排序单元64和最低有效位页寻找单元65位于上位机中。
实施例八
在本发明实施例中,实施例六中的数据操作时间测定单元63和页总数测量单元61位于闪存扫描装置中。
在本发明实施例中,通过测定存储块中每页的数据操作时间,按照测定的每页的数据操作时间的数值从小到大的顺序,从测定的每页的数据操作时间中依次取出数据操作时间位于前N的页确定为最低有效位页,并记录最低有效位页在存储块中的偏移地址,方便的确定了最低有效位页在每个存储块中的位置,此外,该方法实现简单,用户可以根据最低有效位页的信息更好的利用多层单元闪存,实现多层单元闪存的最优性能;通过将测得的数据操作时间按照顺序进行排序,可以方便的查找到最低有效位页的位置。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。