Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020113440 - DATA STORAGE METHOD, FLASH DEVICE, INTELLIGENT BATTERY, AND MOVABLE PLATFORM

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56  

附图

1   2   3   4   5(A)   5(B)   6(A)   6(B)   6(C)   7   8(A)   8(B)   8(C)   8(D)   8(E)   8(F)   9   10(A)   10(B)   10(C)   10(D)   11(A)   11(B)   11(C)   12   13(A)   13(B)   13(C)   13(D)   14   15(A)   15(B)   16(A)   16(B)   17(A)   17(B)   18(A)   18(B)   18(C)   18(D)   18(E)   18(F)   18(G)   18(H)   19   20  

说明书

发明名称 : 数据存储方法、闪存设备、智能电池、可移动平台

技术领域

[0001]
本发明实施例涉及存储技术领域,尤其涉及数据存储方法、闪存设备、智能电池、可移动平台。

背景技术

[0002]
闪存Flash设备因具有可擦除、可编程、掉电数据不丢失以及支持快速的读取访问的特点,在嵌入式领域得到了广泛应用。实际使用中,闪存设备在写入数据时必须先进行擦除操作,而擦除操作是以最小擦除单元(sector)为单位。由于每个最小擦除单元的擦除次数有限,通常只有10万次,因此需要对各最小擦除单元的擦除次数进行管理,从而保证擦除次数均衡。
[0003]
现有的闪存设备,如固定硬盘SSD、U盘等,通常会设置一个适用闪存设备的转换层(Flash Transform Layer,FTL)对每个最小擦除单元的擦除次数进行管理,避免出现部分最小擦除单元快达到擦除次数上限而部分最小擦除单元还没被擦除过的情况。
[0004]
然而,现在的Flash转换层需要对每个最小擦除单元的擦除次数进行跟踪和管理,需要较多的存储空间和计算资源。对于使用单片机MCU作为微处理器的电子设备而言,因存储空间和计算资源有限,因此Flash转换层实现比较困难。
[0005]
发明内容
[0006]
本发明实施例提供一种数据存储方法、闪存设备、智能电池、可移动平台。
[0007]
第一方面,本发明实施例提供一种数据存储方法,包括:
[0008]
若接收到数据存储请求,确定闪存设备的存储次数;
[0009]
对比所述存储次数与预先设置的次数阈值,得到对比结果;
[0010]
根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0011]
第二方面,本发明实施例提供一种闪存装置,包括处理器、存储器和闪存设备,所述闪存设备上设置有多个最小存储单元,处理器在从存储器上读取可执行指令后实现:
[0012]
若接收到数据存储请求,确定闪存设备的存储次数;
[0013]
对比所述存储次数与预先设置的次数阈值,得到对比结果;
[0014]
根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0015]
第三方面,本发明实施例提供一种智能电池,包括处理器、存储器和闪存设备,所述闪存设备上设置有多个最小存储单元,处理器在从存储器上读取可执行指令后实现:
[0016]
若接收到数据存储请求,确定闪存设备的存储次数;
[0017]
对比所述存储次数与预先设置的次数阈值,得到对比结果;
[0018]
根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0019]
第四方面,本发明实施例提供一种可移动平台,包括第三方面所述的智能电池。
[0020]
第五方面,本发明实施例提供一种可读存储介质,所述可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现第一方面所述方法的步骤。
[0021]
由上述的技术方案可见,本实施例中在接收到数据存储请求后,可以确定出闪存设备的存储次数。然后,对比存储次数和次数阈值是否相等,之后,根据对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。可见,本实施例通过设置存储次数阈值,在达到次数阈值时对闪存设备中的保留存储单元进行地址转换,从而避免向同一最小存储单元中多次 写入数据,使闪存设备内各最小存储单元被擦除的概率趋于一致,从而达到均衡擦除次数的效果,有利于延长闪存设备的使用寿命。并且,本实施例中仅处理部分最小存储单元的数据,对存储空间和计算资源的要求比较低,适用使用单片机MCU作为处理器的闪存设备。

附图说明

[0022]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023]
图1是本发明实施例提供的一种数据存储方法的流程示意图;
[0024]
图2是本发明实施例提供的一种获取存储次数的流程示意图;
[0025]
图3是本发明实施例提供的另一种获取存储次数的流程示意图;
[0026]
图4是本发明实施例提供的根据第一存储单元的存储状态写入数据的流程示意图;
[0027]
图5(a)~图5(b)是本发明实施例提供的第一存储单元未存满数据的情况下写入数据的结果示意图;
[0028]
图6(a)~图6(c)是本发明实施例提供的第一存储单元已存满数据的情况下写入数据的过程示意图;
[0029]
图7是本发明实施例提供的先写入数据再地址转换的流程示意图;
[0030]
图8(a)~图8(f)是本发明实施例提供的先写入数据再地址转换的过程示意图;
[0031]
图9是本发明实施例提供的先地址转换再写入数据的流程示意图;
[0032]
图10(a)~图10(d)是本发明实施例提供的在第一存储单元已存满数据的情况下先地址转换再写入数据的过程示意图;
[0033]
图11(a)~图11(c)是本发明实施例提供的在第一存储单元未存满数据的情况下先地址转换再写入数据的过程示意图;
[0034]
图12是本发明实施例提供的一种地址转换的流程示意图;
[0035]
图13(a)~图13(d)是本发明实施例提供的在第一存储单元已存满数据的情况下同时进行地址转换和写入数据的过程示意图;
[0036]
图14是本发明实施例提供的一种数据存储方法的流程示意图;
[0037]
图15(a)~图15(b)是本发明实施例提供的一种剔除坏块是第一存储单元的过程示意图;
[0038]
图16(a)~图16(b)是本发明实施例提供的一种剔除坏块是保留存储单元的过程示意图;
[0039]
图17(a)~图17(b)是本发明实施例提供的一种剔除坏块是第二存储单元的过程示意图;
[0040]
图18(a)~图18(h)是本发明实施例提供的一种数据存储方法的过程示意图;
[0041]
图19是本发明实施例提供的一种闪存设备的框图;
[0042]
图20是本发明实施例提供的一种智能电池的框图。

具体实施方式

[0043]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0044]
鉴于均衡现有闪存设备的各最小擦除单元的擦除次数方案,需要由转换层FTL对每个最小擦除单元的擦除次数进行管理,以避免出现部分最小擦除单元快达到擦除次数上限而部分最小擦除单元还没被擦除过或者很少被擦除过的情况。
[0045]
然而,由于闪存设备中最小擦除单元的数量较多,在对每个最小擦除 单元的擦除次数进行跟踪和管理过程中,需要较多的存储空间和计算资源,这对于存储空间和计算资源均有限的单片机MCU而言,均衡擦除次数则比较困难。
[0046]
为此,本发明实施例提供了一种数据存储方法,利用FTL软件可以对闪存设备中各最小擦除单元的擦除次数作均衡处理,其发明构思在于,设置一保留存储单元,然后在闪存设备的存储次数达到次数阈值时对保留存储单元进行地址转换,通过地址转换避免向同一最小存储单元多次写入数据,使数据存储各最小存储单元内的概率趋于一致,即使各最小存储单元的擦除次数趋于一致,达到均衡的效果。
[0047]
本实施例中,在闪存设备中可以预先存储逻辑地址(LA)和物理地址(PA)之间的映射关系。为方便描述方案,后续实施例中物理地址是指最小存储单元的首地址,逻辑地址是指与最小存储单元具有映射关系的逻辑块的首地址。
[0048]
需要说明的是,上述包括逻辑地址与物理地址的映射关系可以存储在闪存设备中的任一个最小存储单元。在一些实施例中,映射关系存储在闪存设备的最后一个最小存储单元。当然,技术人员还可以将映射关系存储在外部储存器、云端等,在能够实现本实施例方案的情况下,相应方案落入本申请的保护范围。
[0049]
本实施例中最小存储单元是指,每次擦除闪存设备时所能操作的最小物理区域(即最小擦除单元),例如4K比特。当然,技术人员还可以根据具体场景调整最小存储单元的大小,相应方案落入本申请的保护范围。
[0050]
图1是本发明实施例提供的一种数据存储方法的流程示意图,参见图1,一种数据存储方法,包括步骤101~步骤103,其中:
[0051]
在步骤101中,若接收到数据存储请求,确定闪存设备的存储次数。
[0052]
本实施例中,闪存设备中FTL软件可以与应用软件进行交互。用户可以通过应用软件选择存储数据的位置,该位置可以包括一个逻辑地址或者多个逻辑地址。考虑到多个逻辑地址的场景下,各逻辑地址写入数据的过 程中仍然是从首个逻辑地址开始,和一个逻辑地址的写入方案相近,因此后续实施例选择一个逻辑地址的场景描述方案。
[0053]
本实施例中,在交互过程中,闪存设备可以接收到应用软件的数据存储请求。其中数据存储请求包括第一逻辑地址,该第一逻辑地址可以映射到一个物理地址,该物理地址表示一个最小存储单元的首地址,还可以表示多个最小存储单元的首地址。
[0054]
本实施例中,每次接收到数据存储请求,FTL软件会记录一下该数据存储请求或者修改一下闪存设备已经存入数据的存储次数,这样可以确定出闪存设备的存储次数。需要说明的是,在确定存储次数时,可以先获取记录,再结合本次数据存储请求可以确定出存储次数;还可以先记录本次数据存储请求,然后再确定出闪存设备的存储次数。技术人员可以根据具体场景进行设置,在此不作限定。
[0055]
在一实施例中,存储次数可以包括:从存储设备的角度,向闪存设备已写入数据的次数。此场景下,参见图2,确定闪存设备的存储次数可以包括:
[0056]
在接收到数据存储请求后,FTL软件调整已记录的存储次数(对应步骤201)。调整方式可以为记录一下该数据存储请求,然后统计已经记录的数据存储请求,从而得到存储次数;还可以为在前一存储次数的基础上增加1,将调整后的次数作为确定出存储次数。然后,读取已记录的存储次数,得到闪存设备的存储次数(对应步骤202)。
[0057]
在另一实施例中,存储次数还可以包括:从最小存储单元的角度,向第一存储单元已写入数据的次数。此场景下,参见图3,确定闪存设备的存储次数可以包括:
[0058]
在接收到数据存储请求后,获取数据存储请求中获取第一逻辑地址,该第一逻辑地址是指用户期望写入数据的逻辑地址。FTL软件调整数据存储请求中第一逻辑地址的存储次数,第一逻辑地址的存储次数是指向第一逻辑地址中已写入数据的次数(对应步骤301)。然后,FTL软件读取数 据存储请求中第一逻辑地址的存储次数,得到闪存设备的存储次数(对应步骤302)。
[0059]
在步骤102中,对比所述存储次数与预先设置的次数阈值,得到对比结果。
[0060]
本实施例中,可以预先设置次数阈值,该次数阈值可以根据具体进行调整,例如,根据经验值进行设置,又如,根据大数据方式进行统计,将闪存设备寿命最长或者各最小存储单元的擦除次数相同、相近或者相差最少对应的次数阈值作为本实施例的次数阈值。技术人员还可以根据其他方式设置次数阈值,在能够实现本申请方案的情况下,相应方案落入本申请的保护范围。
[0061]
其中,次数阈值可以存储在闪存设备中的任一个最小存储单元。在一些实施例中,次数阈值存储在闪存设备的最后一个最小存储单元。
[0062]
本实施例中,FTL软件可以对比存储次数和次数阈值,可以得到对比结果。其中对比结果可以包括存储次数和次数阈值相等,或者存储次数和次数阈值不等。
[0063]
需要说明的是,在存储次数与次数阈值相等时,本实施例中FTL软件还对存储次数进行清零。其中清零的方式可以包括删除已经记录的存储数据存储请求、对已经记录的存储数据存储请求进行标记、存储次数变量归零。
[0064]
在步骤103中,根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0065]
本实施例中,FTL软件可以根据对比结果确定是否对闪存设备中保留存储单元进行地址转换,可以包括:
[0066]
对比结果1
[0067]
若对比结果为存储次数与次数阈值不等,则确定保持保留存储单元当前的映射关系,并将数据存储到数据存储请求中的第一逻辑地址映射的第 一存储单元。
[0068]
其中,保持保留存储单元当前的映射关系即不对保留地址和保留存储单元的映射关系作地址转换。
[0069]
另外,FTL软件将数据存储到数据存储请求中的第一逻辑地址映射的第一存储单元,参见图4,可以包括:
[0070]
FTL软件可以确定第一存储单元的存储状态,其中存储状态可以包括表示所述第一存储单元未存满数据和表示所述第一存储单元已存满数据(对应步骤401)。
[0071]
然后,FTL软件判断存储状态是表示所述第一存储单元未存满数据,还是表示所述第一存储单元已存满数据(对应步骤402)。
[0072]
之后,若存储状态表示所述第一存储单元未存满数据,FTL软件将数据写入已存储数据的尾部(对应步骤403),即直接向第一存储单元写入数据,无需对第一存储单元进行擦除。参见图5(a)~图5(b),以第一逻辑地址为逻辑地址空间的第一个逻辑地址LA0为例,FTL软件确定第一存储单元PA1中已经存储的数据XX0,且数据XX0的大小小于第一存储单元PA1的大小,即第一存储单元PA1未存满数据,FTL软件从数据XX0的尾部开始写入数据,得到图5(b)所示结果。
[0073]
若存储状态表示第一存储单元已经存满数据,则FTL软件擦除第一存储单元,之后再向第一存储单元写入数据(对应步骤404)。参见图6(a)~图6(c),继续以第一逻辑地址为逻辑地址空间的第一个逻辑地址LA0为例,FTL软件确定第一存储单元PA1中已经存储的数据XX1,且数据XX1的大小等于第一存储单元PA1的大小,即第一存储单元PA1已经存满数据,FTL软件擦除第一存储单元PA1中的数据XX1,采用FF表示未存储数据,结果如图6(b)所示。然后,FTL软件将数据写入第一存储单元PA1,结果如图6(c)所示。
[0074]
需要说明的是,为方便阅读,图5(a)~图5(b)以及图6(a)~图6(c)中发生变化的地方以加组和下划线示出。
[0075]
对比结果2
[0076]
场景一,若对比结果为存储次数与次数阈值相等,则确定对保留存储单元进行地址转换。地址转换可以包括以下方式:
[0077]
方式一
[0078]
参见图7,首先,FTL软件将数据写入第一存储单元(对应步骤701),写入数据的场景可以考虑第一存储单元已存满数据或者未存满数据的,具体参见图5(a)~图5(b)以及图6(a)~图6(c)的内容,在此不再赘述。然后,FTL软件擦除保留存储单元,将第一存储单元中的数据复制到保留存储单元(对应步骤702)。之后,FTL软件将第一逻辑地址映射到保留存储单元以及将保留地址映射到第一存储单元,完成地址转换(对应步骤703)。
[0079]
参见图8(a),以保留地址RS映射到保留存储单元PA0,以及第一逻辑地址LA0,且以第一存储单元PA1中存储数据XX1为例,FTL软件擦除第一存储单元PA1中的数据XX1变为数据FF,结果如图8(b)所示。然后,FTL软件向第一存储单元PA1中写入数据,结果如图8(c)所示。之后,FTL软件擦除保留存储单元PA0,保留存储单元PA0中数据由XX2变为FF,结果如图8(d)所示。再者,FTL软件将第一存储单元PA1中的数据复制到保留存储单元PA0中,保留存储单元PA0中数据由FF变为 数据,结果如图8(e)所示。最后,FTL软件将第一逻辑地址LA0映射到保留存储单元PA0以及将保留地址RS映射到第一存储单元PA1,完成地址转换,结果如图8(f)所示。
[0080]
需要说明的是,为方便阅读,图8(a)~图8(f)中发生变化的地方以加组和下划线示出。
[0081]
方式二
[0082]
参见图9,FTL软件将第一逻辑地址映射到保留存储单元以及将保留地址映射到第一存储单元,完成地址转换(对应步骤901)。然后,FTL 软件将数据存储到第一逻辑地址映射的保留存储单元(对应步骤902)。
[0083]
在步骤902中,可以包括情况:情况一,若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据。情况二,若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[0084]
在保留存储单元存满数据的情况中,参见图10(a),继续以保留地址RS映射到保留存储单元PA0,以及第一逻辑地址LA0,且以第一存储单元PA1中存储数据XX1为例。FTL软件将第一逻辑地址LA0映射到保留存储单元PA0以及将保留地址RS映射到第一存储单元PA1,完成地址转换,结果如图10(b)所示。然后,FTL软件擦除保留存储单元PA0中的数据XX2变为数据FF,结果如图10(c)所示。最后,FTL软件向保留存储单元PA0中写入 数据,结果如图10(d)所示。
[0085]
在保留存储单元未存满数据的情况中,参见图11(a),继续以保留地址RS映射到保留存储单元PA0,以及第一逻辑地址LA0,且以第一存储单元PA1中存储数据XX1为例。FTL软件将第一逻辑地址LA0映射到保留存储单元PA0以及将保留地址RS映射到第一存储单元PA1,完成地址转换,结果如图11(b)所示。然后,FTL软件在保留存储单元PA0中数据XX2之后写入 数据,结果如图11(c)所示。
[0086]
需要说明的是,为方便阅读,图10(a)~图10(d)以及图11(a)~图11(c)中发生变化的地方以加组和下划线示出。
[0087]
场景二,保留存储单元和第一存储单元不相邻,且保留存储单元和第二存储单元相邻。参见图12,地址转换可以包括:
[0088]
FTL软件将数据写入第一存储单元(对应步骤1201)。向第一存储单元写入数据的方式可以参见图5(a)~图5(b)以及图6(a)~图6(c)的内容,在此不再赘述。
[0089]
以及,FTL软件擦除保留存储单元擦除保留存储单元(对应步骤1202)。然后,FTL软件将第二存储单元中的数据复制到保留存储单元(对 应步骤1203)。最后,FTL软件将保留地址映射到第二存储单元且第二逻辑地址映射到保留存储单元,完成地址转换(对应步骤1204)。
[0090]
需要说明的是,步骤1201与步骤1202~步骤1204的顺序不作限定,步骤1201可以先于步骤1202~步骤1204,步骤1201可以后于步骤1202~步骤1204,步骤1201可以同时与步骤1202~步骤1204执行。图13(a)~图13(d)中以步骤1201同时与步骤1202~步骤1204执行为例进行说明。
[0091]
参见图13(a),以保留地址RS映射到保留存储单元PA0,以及第二逻辑地址LA0映射到第二存储单元PA1,第一逻辑地址LA5映射到第一存储单元PA5,且保留存储单元PA0存储数据XX2,第二存储单元PA1存储数据XX3,第一存储单元PA5存储数据XX1。然后,FTL软件擦除第一存储单元PA5中的数据XX1变为数据FF,以及擦除保留存储单元PA0中的数据XX2变为数据FF,结果如图13(b)所示。之后,FTL软件将数据写入第一存储单元PA5中,以及将第二存储单元PA1中的数据XX3复制到保留存储单元PA0中,即保留存储单元PA0中数据FF变为XX3,结果如图13(c)所示。最后,FTL软件保留地址RS映射到第二存储单元PA1以及将第二逻辑地址LA0映射到保留存储单元PA0,完成地址转换,结果如图13(d)所示。
[0092]
至此,本实施例中在接收到数据存储请求后,可以确定出闪存设备的存储次数。然后,对比存储次数和次数阈值是否相等,之后,根据对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。可见,本实施例通过设置存储次数阈值,在达到次数阈值时对闪存设备中的保留存储单元进行地址转换,从而避免向同一最小存储单元中多次写入数据,使闪存设备内各最小存储单元被擦除的概率趋于一致,从而达到均衡擦除次数的效果,有利于延长闪存设备的使用寿命。并且,本实施例中仅处理部分最小存储单元的数据,对存储空间和计算资源的要求比较低,适用使用单片机MCU作为处理器的闪存设备。
[0093]
实际应用中,考虑到闪存设备中最小存储单元可能存储坏块的情况,本实施例中可以为各最小存储单元设置状态信息,该状态信息可以用于记录各最小存储单元的健康状态,状态信息至少包括健康状态和其他状态,其他状态包括以下至少一项:读失败、写失败和擦除失败。
[0094]
为此,在对比结果为存储次数与次数阈值相等时,在图1所示数据存储方法的基础上,参见图14,一种数据存储方法还可以包括:
[0095]
首先,FTL软件获取闪存设备各最小存储单元的状态信息(对应步骤1401)。本实施例中,FTL软件可以获取闪存设备中全部最小存储单元的状态信息,这样可以快速查询到其中任一个最小存储单元的状态信息。本实施例中,FTL软件还可以获取与本次数据存储以及地址转换相关的最小存储单元,这样获取的数据量较少,查询速度快。然后,FTL软件在确定出各最小存储单元的状态信息为健康状态时,则执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤(对应步骤1402),根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的内容可以参见图1及相关内容,在此不再赘述。
[0096]
在另一实施例中,FTL软件在确定出第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态时,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。其中,根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的内容可以参见图1及相关内容,在此不再赘述。
[0097]
本实施例中,更换第一存储单元可以包括:参见图15(a),因第一存储单元PA1的状态信息为其他状态,FTL软件将与第一存储单元PA1相邻的第三存储单元PA2作为更换后的第一存储单元,然后建立第一逻辑地址LA0和更换后的第一存储单元(即第三存储单元PA2)的映射关系,结果图15(b)所示。其中图15(a)中第一存储单元PA为坏块,采用灰色背景示出,图15(b)中第三逻辑地址不存在映射关系,同样采用灰色背景示出。这样,本实施例中可以将坏块(即第一存储单元PA1)从映射 关系中剔除,达到对坏块进行管理的目的。同时,本实施例中将第三逻辑地址LA1从映射关系中剔除,从而保证映射关系中逻辑地址和各最小存储单元之间的关系。
[0098]
在又一实施例中,FTL软件获取状态信息的最小存储单元中还包括保留存储单元。若保留存储单元的状态信息为其他状态,FTL软件则将与保留存储单元最近的一个最小存储单元作为更换后的保留存留单元,并建立保留地址和更换后的保留存储单元的映射关系。参见图16(a),当检测到保留存储单元PA0的状态信息为其他状态时,FTL软件检测到保留存储单元PA0最近的一个最小存储单元为第二存储单元PA1,因此FTL软件将第二存储单元PA1作为更换后的保留存储单元,并建立保留地址RS和第二存储单元PA1之间的映射关系,结果如图16(b)所示。
[0099]
需要说明的是,更换前的保留存储单元PA0为坏块,从映射关系中剔除;第二逻辑地址LA0没有最小存储单元与之映射被剔除,剔除内容采用灰色背景示出。
[0100]
在另一实施例中,FTL软件获取状态信息的最小存储单元中还包括第二存储单元。若第二存储单元的状态信息为其他状态,FTL软件则将与第二存储单元最近的一个最小存储单元作为更换后的保留存留单元,并建立保留地址和更换后的保留存储单元的映射关系。参见图17(a),当检测到第二存储单元PA1的状态信息为其他状态时,FTL软件检测到第二存储单元PA1最近的一个最小存储单元为第四存储单元PA2,因此FTL软件将第四存储单元PA2作为更换后的保留存储单元,并建立保留地址RS和第四存储单元PA2之间的映射关系,剔除灰度背景表示的第二存储单元PA1和第四逻辑地址LA1,结果如图17(b)所示。
[0101]
需要说明的是,更换后的保留存储单元RS的最近一个最小存储单元由第二存储单元PA1变为第四存储单元PA2。若保留存储单元RS需要地址转换,则按照图4或图7所示地址转换方式转换即可,在此不再赘述。
[0102]
下面结合实施例和附图描述本发明实施例提供的数据存储方法,其中 次数阈值为1,即用户每向闪存设备写入一次数据,保留地址RS作一次地址转换。实际应用中,FTL软件可以将逻辑地址展现给用户,由用户选择将数据存入的逻辑地址。为方便描述,本实施例中以用户依次选择逻辑地址的方式描述本实施例方案。
[0103]
参见图18(a),保留地址RS映射到保留存储单元PA0,逻辑地址LA 1~LA N-1依次映射到最小存储单元PA 1~PA N,其中最小存储单元SA中存储FTL软件所需要的状态数据、映射关系等数据,对应用软件或用户而言,最小存储单元SA不可见(斜线背景示出)。
[0104]
参见图18(b),第一次存储数据时,FTL软件检测到用户选择向第一逻辑地址LA0写入数据,此时第一逻辑地址映射到PA1。由于闪存设备的存储次数达到1次且各最小存储单元的状态信息为健康状态,FTL软件对保留存储单元进行地址转换,且写入数据XX0,结果如参见图18(c)所示,此时逻辑地址LA0映射到最小存储单元PA0,保存地址映射到最小存储单元PA1,即最小存储单元PA1成为保留存储单元。
[0105]
参见图18(d),第二次存储数据时,FTL软件检测到用户选择向第一逻辑地址LA1写入数据,此时第一逻辑地址映射到PA2。由于闪存设备的存储次数达到1次,FTL软件检测到第一存储单元PA2为坏块(状态信息为其他状态),如图18(d)所示。FTL软件先更换第一存储单元,由于最小存储单元PA2最近的一个存储单元为最小存储单元PA3,因此将最小存储单元PA3作为更换后的第一存储单元,结果如图18(e)所示。然后,FTL软件对保留存储单元PA1进行地址转换,且写入数据XX1,结果如参见图18(f)所示,此时逻辑地址LA1映射到最小存储单元PA1,保存地址RS映射到最小存储单元PA3,即最小存储单元PA3成为保留存储单元。
[0106]
之后,继续检测用户的第3,4,……,N-3次数据,得到图18(g)所示的结果,此时保存地址RS映射到最小存储单元PA N-1。
[0107]
当FTL软件检测到用户向最小存储单元LA0写入数据XX N-2时,经 过地址转换和数据写入得到图18(h)所示结果。
[0108]
这样,图18(a)~图18(h)示出了保留存储单元依次经过最小存储单元PA0、PA1、PA3、……、PA N-1,重新回到最小存储单元PA0的循环过程。
[0109]
本实施例中,通过设置保留存储单元可以保证用户写入的数据存储到不同的最小存储单元,可以避免用户向同一逻辑地址写入多次数据时出现同一最小存储单元擦除次数增加过快的情况,达到均衡各存储单元的擦除次数的效果。并且,本实施例中,在数据写入且无需地址转换的场景中,FTL软件仅对第一逻辑地址映射的第一存储单元进行管理;在数据写入且需要地址转换的场景中,FTL软件仅对第一存储单元和保留存储单元(两者相邻)进行管理;在数据写入、需要地址转换且第一存储单元和保留存储单元不相邻的场景中,FTL软件仅对第一存储单元、保留存储单元和第二存储单元进行管理,即FTL软件每次管理的存储单元数量大大减少,对存储资源和计算资源的需求较低,适用于采用单片机作为处理器的场景。
[0110]
本发明实施例还提供一种闪存装置,图19是本发明实施例提供的一种闪存装置的框图。参见图19,一种闪存装置1900,包括处理器1901、存储器1902和闪存设备1904,所述闪存设备上设置有多个最小存储单元,各存储单元可以用于数据;处理器1901通过通信总线1903与存储器1902通信,处理器1901在从存储器1902上读取可执行指令后实现:
[0111]
若接收到数据存储请求,确定闪存设备的存储次数;
[0112]
对比所述存储次数与预先设置的次数阈值,得到对比结果;
[0113]
根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0114]
在一些实施例中,所述处理器1901用于确定闪存设备的存储次数包括:
[0115]
调整已记录的存储次数,所述已记录的存储次数包括向所述闪存设备已写入数据的次数;
[0116]
读取已记录的存储次数,得到所述闪存设备的存储次数。
[0117]
在一些实施例中,所述处理器1901用于确定闪存设备的存储次数包括:
[0118]
调整所述数据存储请求中第一逻辑地址的存储次数,所述第一逻辑地址的存储次数是指向所述第一逻辑地址中已写入数据的次数;
[0119]
读取所述数据存储请求中第一逻辑地址的存储次数,得到所述闪存设备的存储次数。
[0120]
在一些实施例中,所述处理器1901用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括:
[0121]
若对比结果为所述存储次数与所述次数阈值不等,则确定保持所述保留存储单元当前的映射关系,并将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元。
[0122]
在一些实施例中,所述处理器1901用于将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元包括:
[0123]
确定第一存储单元的存储状态;
[0124]
若所述存储状态表示所述第一存储单元未存满数据,则从已存储数据的尾部写入数据;
[0125]
若所述存储状态表示所述第一存储单元已存满数据,则擦除所述第一存储单元后写入数据。
[0126]
在一些实施例中,所述处理器1901用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括:
[0127]
若对比结果为所述存储次数与所述次数阈值相等,则确定对所述保留存储单元进行地址转换。
[0128]
在一些实施例中,若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器1901用于对所述保留存储单元进行地址转换包括:
[0129]
将数据写入所述第一存储单元;
[0130]
擦除所述保留存储单元,将所述第一存储单元中的数据复制到所述保留存储单元;
[0131]
将所述第一逻辑地址映射到所述保留存储单元以及将所述保留地址映射到所述第一存储单元,完成地址转换。
[0132]
在一些实施例中,所述闪存设备包括与保留地址映射的保留存储单元;若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器1901用于对所述保留存储单元进行地址转换包括:
[0133]
将所述保留地址映射到所述第一存储单元且所述第一逻辑地址映射到所述保留存储单元,完成地址转换;
[0134]
将数据存储到所述第一逻辑地址映射的保留存储单元。
[0135]
在一些实施例中,所述处理器1901用于将数据存储到所述第一逻辑地址映射的保留存储单元包括:
[0136]
若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据;
[0137]
若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[0138]
在一些实施例中,所述闪存设备包括与保留地址映射的保留存储单元以及与第二逻辑地址映射的第二存储单元,所述保留存储单元与所述第二存储单元相邻且与所述第一存储单元不相邻,所述处理器1901用于对所述保留存储单元进行地址转换包括:
[0139]
将数据写入所述第一存储单元;以及,
[0140]
擦除所述保留存储单元,将所述第二存储单元中的数据复制到所述保留存储单元;
[0141]
将所述保留地址映射到所述第二存储单元且所述第二逻辑地址映射到所述保留存储单元,完成地址转换。
[0142]
在一些实施例中,若对比结果为所述存储次数与所述次数阈值相等,述处理器1901还用于:
[0143]
获取所述闪存设备中各最小存储单元的状态信息;所述状态信息用于 记录各最小存储单元的健康状态;所述状态信息至少包括健康状态;
[0144]
若所述各最小存储单元的状态信息为健康状态,则执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[0145]
在一些实施例中,所述各最小存储单元中包括第一存储单元,所述处理器1901用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0146]
若所述第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[0147]
在一些实施例中,所述处理器1901用于更换第一存储单元包括:
[0148]
将与所述第一存储单元相邻的第三存储单元作为更换后的第一存储单元,并建立所述第一逻辑地址和所述更换后的第一存储单元的映射关系。
[0149]
在一些实施例中,所述各最小存储单元中包括保留存储单元,所述处理器1901用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0150]
若保留存储单元的状态信息为其他状态,将与所述保留存储单元最近的一个最小存储单元作为更换后的保留存储单元,并建立保留地址和所述更换后的保留存储单元的映射关系。
[0151]
在一些实施例中,所述各最小存储单元中包括与保留存储单元相邻的第二存储单元,所述处理器1901用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0152]
若第二存储单元的状态信息为其他状态,将与所述第二存储单元相邻的第四存储单元作为更换后的第二存储单元,并建立所述第二逻辑地址与所述更换后的第二存储单元的映射关系。
[0153]
在一些实施例中,所述其他状态包括以下至少一项:读失败、写失败和擦除失败。
[0154]
在一些实施例中,所述闪存设备中任一存储单元存储有第一逻辑地址 和第一存储单元的映射关系以及保留地址和保留存储单元的映射关系。
[0155]
在一些实施例中,所述任一存储单元为所述闪存设备中的最后一个存储单元。
[0156]
本发明实施例还提供一种智能电池,图19是本发明实施例提供的一种智能电池的框图。参见图20,一种智能电池2000,其特征在于,包括处理器2001、存储器2002和闪存设备2004,所述闪存设备2004上设置有多个最小存储单元,处理器2001在从存储器2002上读取可执行指令后实现:
[0157]
若接收到数据存储请求,确定闪存设备的存储次数;
[0158]
对比所述存储次数与预先设置的次数阈值,得到对比结果;
[0159]
根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[0160]
在一些实施例中,所述处理器2001用于确定闪存设备的存储次数包括:
[0161]
调整已记录的存储次数,所述已记录的存储次数包括向所述闪存设备已写入数据的次数;
[0162]
读取已记录的存储次数,得到所述闪存设备的存储次数。
[0163]
在一些实施例中,所述处理器2001用于确定闪存设备的存储次数包括:
[0164]
调整所述数据存储请求中第一逻辑地址的存储次数,所述第一逻辑地址的存储次数是指向所述第一逻辑地址中已写入数据的次数;
[0165]
读取所述数据存储请求中第一逻辑地址的存储次数,得到所述闪存设备的存储次数。
[0166]
在一些实施例中,所述处理器2001用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括:
[0167]
若对比结果为所述存储次数与所述次数阈值不等,则确定保持所述保留存储单元当前的映射关系,并将数据存储到所述数据存储请求中的第一 逻辑地址映射的第一存储单元。
[0168]
在一些实施例中,所述处理器2001用于将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元包括:
[0169]
确定第一存储单元的存储状态;
[0170]
若所述存储状态表示所述第一存储单元未存满数据,则从已存储数据的尾部写入数据;
[0171]
若所述存储状态表示所述第一存储单元已存满数据,则擦除所述第一存储单元后写入数据。
[0172]
在一些实施例中,所述处理器2001用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括:
[0173]
若对比结果为所述存储次数与所述次数阈值相等,则确定对所述保留存储单元进行地址转换。
[0174]
在一些实施例中,若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器2001用于对所述保留存储单元进行地址转换包括:
[0175]
将数据写入所述第一存储单元;
[0176]
擦除所述保留存储单元,将所述第一存储单元中的数据复制到所述保留存储单元;
[0177]
将所述第一逻辑地址映射到所述保留存储单元以及将所述保留地址映射到所述第一存储单元,完成地址转换。
[0178]
在一些实施例中,所述闪存设备包括与保留地址映射的保留存储单元;若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器2001用于对所述保留存储单元进行地址转换包括:
[0179]
将所述保留地址映射到所述第一存储单元且所述第一逻辑地址映射到所述保留存储单元,完成地址转换;
[0180]
将数据存储到所述第一逻辑地址映射的保留存储单元。
[0181]
在一些实施例中,所述处理器2001用于将数据存储到所述第一逻辑 地址映射的保留存储单元包括:
[0182]
若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据;
[0183]
若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[0184]
在一些实施例中,所述闪存设备包括与保留地址映射的保留存储单元以及与第二逻辑地址映射的第二存储单元,所述保留存储单元与所述第二存储单元相邻且与所述第一存储单元不相邻,所述处理器2001用于对所述保留存储单元进行地址转换包括:
[0185]
将数据写入所述第一存储单元;以及,
[0186]
擦除所述保留存储单元,将所述第二存储单元中的数据复制到所述保留存储单元;
[0187]
将所述保留地址映射到所述第二存储单元且所述第二逻辑地址映射到所述保留存储单元,完成地址转换。
[0188]
在一些实施例中,若对比结果为所述存储次数与所述次数阈值相等,所述处理器2001还用于:
[0189]
获取所述闪存设备中各最小存储单元的状态信息;所述状态信息用于记录各最小存储单元的健康状态;所述状态信息至少包括健康状态;
[0190]
若所述各最小存储单元的状态信息为健康状态,则执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[0191]
在一些实施例中,所述各最小存储单元中包括第一存储单元,所述处理器2001用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0192]
若所述第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[0193]
在一些实施例中,所述处理器2001用于更换第一存储单元包括:
[0194]
将与所述第一存储单元相邻的第三存储单元作为更换后的第一存储单 元,并建立所述第一逻辑地址和所述更换后的第一存储单元的映射关系。
[0195]
在一些实施例中,所述各最小存储单元中包括保留存储单元,所述处理器2001用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0196]
若保留存储单元的状态信息为其他状态,将与所述保留存储单元最近的一个最小存储单元作为更换后的保留存储单元,并建立保留地址和所述更换后的保留存储单元的映射关系。
[0197]
在一些实施例中,所述各最小存储单元中包括与保留存储单元相邻的第二存储单元,所述处理器2001用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于:
[0198]
若第二存储单元的状态信息为其他状态,将与所述第二存储单元相邻的第四存储单元作为更换后的第二存储单元,并建立所述第二逻辑地址与所述更换后的第二存储单元的映射关系。
[0199]
在一些实施例中,所述其他状态包括以下至少一项:读失败、写失败和擦除失败。
[0200]
在一些实施例中,所述闪存设备中任一存储单元存储有第一逻辑地址和第一存储单元的映射关系以及保留地址和保留存储单元的映射关系。
[0201]
在一些实施例中,所述任一存储单元为所述闪存设备中的最后一个存储单元。
[0202]
本发明实施例还提供了一种可移动平台,可以包括上述智能电池。其中,可移动平台可以为无人机、智能手机、平板电脑、手持拍照设备等设备。
[0203]
本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现上述各实施例示出的数据存储方法的步骤,具体内容可以参考数据存储方法各实施例,在此不再赘述。
[0204]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用 来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0205]
以上对本发明实施例所提供的检测装置和方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

权利要求书

[权利要求 1]
一种数据存储方法,其特征在于,包括: 若接收到数据存储请求,确定闪存设备的存储次数; 对比所述存储次数与预先设置的次数阈值,得到对比结果; 根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[权利要求 2]
根据权利要求1所述的数据存储方法,其特征在于,确定闪存设备的存储次数包括: 调整已记录的存储次数,所述已记录的存储次数包括向所述闪存设备已写入数据的次数; 读取已记录的存储次数,得到所述闪存设备的存储次数。
[权利要求 3]
根据权利要求1所述的数据存储方法,其特征在于,确定闪存设备的存储次数包括: 调整所述数据存储请求中第一逻辑地址的存储次数,所述第一逻辑地址的存储次数是指向所述第一逻辑地址中已写入数据的次数; 读取所述数据存储请求中第一逻辑地址的存储次数,得到所述闪存设备的存储次数。
[权利要求 4]
根据权利要求1所述的数据存储方法,其特征在于,根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值不等,则确定保持所述保留存储单元当前的映射关系,并将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元。
[权利要求 5]
根据权利要求4所述的数据存储方法,其特征在于,将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元包括: 确定第一存储单元的存储状态; 若所述存储状态表示所述第一存储单元未存满数据,则从已存储数据 的尾部写入数据; 若所述存储状态表示所述第一存储单元已存满数据,则擦除所述第一存储单元后写入数据。
[权利要求 6]
根据权利要求1所述的数据存储方法,其特征在于,根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值相等,则确定对所述保留存储单元进行地址转换。
[权利要求 7]
根据权利要求6所述的数据存储方法,其特征在于,若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元; 擦除所述保留存储单元,将所述第一存储单元中的数据复制到所述保留存储单元; 将所述第一逻辑地址映射到所述保留存储单元以及将所述保留地址映射到所述第一存储单元,完成地址转换。
[权利要求 8]
根据权利要求6所述的数据存储方法,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元;若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,对所述保留存储单元进行地址转换包括: 将所述保留地址映射到所述第一存储单元且所述第一逻辑地址映射到所述保留存储单元,完成地址转换; 将数据存储到所述第一逻辑地址映射的保留存储单元。
[权利要求 9]
根据权利要求8所述的数据存储方法,其特征在于,将数据存储到所述第一逻辑地址映射的保留存储单元包括: 若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据; 若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[权利要求 10]
根据权利要求6所述的数据存储方法,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元以及与第二逻辑地址映射的第二存储单元,所述保留存储单元与所述第二存储单元相邻且与所述第一存储单元不相邻,对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元;以及, 擦除所述保留存储单元,将所述第二存储单元中的数据复制到所述保留存储单元; 将所述保留地址映射到所述第二存储单元且所述第二逻辑地址映射到所述保留存储单元,完成地址转换。
[权利要求 11]
根据权利要求6所述的数据存储方法,其特征在于,若对比结果为所述存储次数与所述次数阈值相等,所述方法还包括: 获取所述闪存设备中各最小存储单元的状态信息;所述状态信息用于记录各最小存储单元的健康状态;所述状态信息至少包括健康状态; 若所述各最小存储单元的状态信息为健康状态,则执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 12]
根据权利要求11所述的数据存储方法,其特征在于,所述各最小存储单元中包括第一存储单元,获取所述闪存设备中各最小存储单元的状态信息之后,所述方法还包括: 若所述第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 13]
根据权利要求12所述的数据存储方法,其特征在于,更换第一存储单元包括: 将与所述第一存储单元相邻的第三存储单元作为更换后的第一存储单元,并建立所述第一逻辑地址和所述更换后的第一存储单元的映射关系。
[权利要求 14]
根据权利要求12所述的数据存储方法,其特征在于,所述各最小存储单元中包括保留存储单元,获取所述闪存设备中各最小存储单元的 状态信息之后,所述方法还包括: 若保留存储单元的状态信息为其他状态,将与所述保留存储单元最近的一个最小存储单元作为更换后的保留存储单元,并建立保留地址和所述更换后的保留存储单元的映射关系。
[权利要求 15]
根据权利要求12所述的数据存储方法,其特征在于,所述各最小存储单元中包括与保留存储单元相邻的第二存储单元,获取所述闪存设备中各最小存储单元的状态信息之后,所述方法还包括: 若第二存储单元的状态信息为其他状态,将与所述第二存储单元相邻的第四存储单元作为更换后的第二存储单元,并建立所述第二逻辑地址与所述更换后的第二存储单元的映射关系。
[权利要求 16]
根据权利要求12~15任一项所述的数据存储方法,其特征在于,所述其他状态包括以下至少一项:读失败、写失败和擦除失败。
[权利要求 17]
根据权利要求1所述的数据存储方法,其特征在于,所述闪存设备中任一存储单元存储有第一逻辑地址和第一存储单元的映射关系以及保留地址和保留存储单元的映射关系。
[权利要求 18]
根据权利要求17所述的数据存储方法,其特征在于,所述任一存储单元为所述闪存设备中的最后一个存储单元。
[权利要求 19]
一种闪存装置,其特征在于,包括处理器、存储器和闪存设备,所述闪存设备上设置有多个最小存储单元,处理器在从存储器上读取可执行指令后实现: 若接收到数据存储请求,确定闪存设备的存储次数; 对比所述存储次数与预先设置的次数阈值,得到对比结果; 根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[权利要求 20]
根据权利要求19所述的闪存装置,其特征在于,所述处理器用于确定闪存设备的存储次数包括: 调整已记录的存储次数,所述已记录的存储次数包括向所述闪存设备 已写入数据的次数; 读取已记录的存储次数,得到所述闪存设备的存储次数。
[权利要求 21]
根据权利要求19所述的闪存装置,其特征在于,所述处理器用于确定闪存设备的存储次数包括: 调整所述数据存储请求中第一逻辑地址的存储次数,所述第一逻辑地址的存储次数是指向所述第一逻辑地址中已写入数据的次数; 读取所述数据存储请求中第一逻辑地址的存储次数,得到所述闪存设备的存储次数。
[权利要求 22]
根据权利要求19所述的闪存装置,其特征在于,所述处理器用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值不等,则确定保持所述保留存储单元当前的映射关系,并将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元。
[权利要求 23]
根据权利要求22所述的闪存装置,其特征在于,所述处理器用于将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元包括: 确定第一存储单元的存储状态; 若所述存储状态表示所述第一存储单元未存满数据,则从已存储数据的尾部写入数据; 若所述存储状态表示所述第一存储单元已存满数据,则擦除所述第一存储单元后写入数据。
[权利要求 24]
根据权利要求19所述的闪存装置,其特征在于,所述处理器用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值相等,则确定对所述保留存储单元进行地址转换。
[权利要求 25]
根据权利要求24所述的闪存装置,其特征在于,若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元; 擦除所述保留存储单元,将所述第一存储单元中的数据复制到所述保留存储单元; 将所述第一逻辑地址映射到所述保留存储单元以及将所述保留地址映射到所述第一存储单元,完成地址转换。
[权利要求 26]
根据权利要求24所述的闪存装置,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元;若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将所述保留地址映射到所述第一存储单元且所述第一逻辑地址映射到所述保留存储单元,完成地址转换; 将数据存储到所述第一逻辑地址映射的保留存储单元。
[权利要求 27]
根据权利要求26所述的闪存装置,其特征在于,所述处理器用于将数据存储到所述第一逻辑地址映射的保留存储单元包括: 若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据; 若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[权利要求 28]
根据权利要求24所述的闪存装置,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元以及与第二逻辑地址映射的第二存储单元,所述保留存储单元与所述第二存储单元相邻且与所述第一存储单元不相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元;以及, 擦除所述保留存储单元,将所述第二存储单元中的数据复制到所述保留存储单元; 将所述保留地址映射到所述第二存储单元且所述第二逻辑地址映射到所述保留存储单元,完成地址转换。
[权利要求 29]
根据权利要求24所述的闪存装置,其特征在于,若对比结果为所述存储次数与所述次数阈值相等,所述处理器还用于: 获取所述闪存设备中各最小存储单元的状态信息;所述状态信息用于记录各最小存储单元的健康状态;所述状态信息至少包括健康状态; 若所述各最小存储单元的状态信息为健康状态,则执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 30]
根据权利要求29所述的闪存装置,其特征在于,所述各最小存储单元中包括第一存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若所述第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 31]
根据权利要求30所述的闪存装置,其特征在于,所述处理器用于更换第一存储单元包括: 将与所述第一存储单元相邻的第三存储单元作为更换后的第一存储单元,并建立所述第一逻辑地址和所述更换后的第一存储单元的映射关系。
[权利要求 32]
根据权利要求30所述的闪存装置,其特征在于,所述各最小存储单元中包括保留存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若保留存储单元的状态信息为其他状态,将与所述保留存储单元最近的一个最小存储单元作为更换后的保留存储单元,并建立保留地址和所述更换后的保留存储单元的映射关系。
[权利要求 33]
根据权利要求30所述的闪存装置,其特征在于,所述各最小存储单元中包括与保留存储单元相邻的第二存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若第二存储单元的状态信息为其他状态,将与所述第二存储单元相邻的第四存储单元作为更换后的第二存储单元,并建立所述第二逻辑地址与所述更换后的第二存储单元的映射关系。
[权利要求 34]
根据权利要求30~33任一项所述的闪存装置,其特征在于,所述其他状态包括以下至少一项:读失败、写失败和擦除失败。
[权利要求 35]
根据权利要求19所述的闪存装置,其特征在于,所述闪存设备中任一存储单元存储有第一逻辑地址和第一存储单元的映射关系以及保留地址和保留存储单元的映射关系。
[权利要求 36]
根据权利要求35所述的闪存装置,其特征在于,所述任一存储单元为所述闪存设备中的最后一个存储单元。
[权利要求 37]
一种智能电池,其特征在于,包括处理器、存储器和闪存设备,所述闪存设备上设置有多个最小存储单元,处理器在从存储器上读取可执行指令后实现: 若接收到数据存储请求,确定闪存设备的存储次数; 对比所述存储次数与预先设置的次数阈值,得到对比结果; 根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换。
[权利要求 38]
根据权利要求37所述的智能电池,其特征在于,所述处理器用于确定闪存设备的存储次数包括: 调整已记录的存储次数,所述已记录的存储次数包括向所述闪存设备已写入数据的次数; 读取已记录的存储次数,得到所述闪存设备的存储次数。
[权利要求 39]
根据权利要求37所述的智能电池,其特征在于,所述处理器用于确定闪存设备的存储次数包括: 调整所述数据存储请求中第一逻辑地址的存储次数,所述第一逻辑地址的存储次数是指向所述第一逻辑地址中已写入数据的次数; 读取所述数据存储请求中第一逻辑地址的存储次数,得到所述闪存设 备的存储次数。
[权利要求 40]
根据权利要求37所述的智能电池,其特征在于,所述处理器用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值不等,则确定保持所述保留存储单元当前的映射关系,并将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元。
[权利要求 41]
根据权利要求40所述的智能电池,其特征在于,所述处理器用于将数据存储到所述数据存储请求中的第一逻辑地址映射的第一存储单元包括: 确定第一存储单元的存储状态; 若所述存储状态表示所述第一存储单元未存满数据,则从已存储数据的尾部写入数据; 若所述存储状态表示所述第一存储单元已存满数据,则擦除所述第一存储单元后写入数据。
[权利要求 42]
根据权利要求37所述的智能电池,其特征在于,所述处理器用于根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换包括: 若对比结果为所述存储次数与所述次数阈值相等,则确定对所述保留存储单元进行地址转换。
[权利要求 43]
根据权利要求42所述的智能电池,其特征在于,若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元; 擦除所述保留存储单元,将所述第一存储单元中的数据复制到所述保留存储单元; 将所述第一逻辑地址映射到所述保留存储单元以及将所述保留地址映 射到所述第一存储单元,完成地址转换。
[权利要求 44]
根据权利要求42所述的智能电池,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元;若所述保留存储单元与所述数据存储请求中第一逻辑地址映射的第一存储单元相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将所述保留地址映射到所述第一存储单元且所述第一逻辑地址映射到所述保留存储单元,完成地址转换; 将数据存储到所述第一逻辑地址映射的保留存储单元。
[权利要求 45]
根据权利要求44所述的智能电池,其特征在于,所述处理器用于将数据存储到所述第一逻辑地址映射的保留存储单元包括: 若所述保留存储单元未存满数据,则从已存储数据的尾部写入数据; 若所述保留存储单元已存满数据,则擦除所述保留存储单元后写入数据。
[权利要求 46]
根据权利要求42所述的智能电池,其特征在于,所述闪存设备包括与保留地址映射的保留存储单元以及与第二逻辑地址映射的第二存储单元,所述保留存储单元与所述第二存储单元相邻且与所述第一存储单元不相邻,所述处理器用于对所述保留存储单元进行地址转换包括: 将数据写入所述第一存储单元;以及, 擦除所述保留存储单元,将所述第二存储单元中的数据复制到所述保留存储单元; 将所述保留地址映射到所述第二存储单元且所述第二逻辑地址映射到所述保留存储单元,完成地址转换。
[权利要求 47]
根据权利要求42所述的智能电池,其特征在于,若对比结果为所述存储次数与所述次数阈值相等,所述处理器还用于: 获取所述闪存设备中各最小存储单元的状态信息;所述状态信息用于记录各最小存储单元的健康状态;所述状态信息至少包括健康状态; 若所述各最小存储单元的状态信息为健康状态,则执行根据所述对比 结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 48]
根据权利要求47所述的智能电池,其特征在于,所述各最小存储单元中包括第一存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若所述第一逻辑地址映射的第一存储单元的状态信息为除健康状态之外的其他状态,则更换第一存储单元且执行根据所述对比结果确定是否对所述闪存设备中保留存储单元进行地址转换的步骤。
[权利要求 49]
根据权利要求48所述的智能电池,其特征在于,所述处理器用于更换第一存储单元包括: 将与所述第一存储单元相邻的第三存储单元作为更换后的第一存储单元,并建立所述第一逻辑地址和所述更换后的第一存储单元的映射关系。
[权利要求 50]
根据权利要求48所述的智能电池,其特征在于,所述各最小存储单元中包括保留存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若保留存储单元的状态信息为其他状态,将与所述保留存储单元最近的一个最小存储单元作为更换后的保留存储单元,并建立保留地址和所述更换后的保留存储单元的映射关系。
[权利要求 51]
根据权利要求48所述的智能电池,其特征在于,所述各最小存储单元中包括与保留存储单元相邻的第二存储单元,所述处理器用于获取所述闪存设备中各最小存储单元的状态信息之后,还用于: 若第二存储单元的状态信息为其他状态,将与所述第二存储单元相邻的第四存储单元作为更换后的第二存储单元,并建立所述第二逻辑地址与所述更换后的第二存储单元的映射关系。
[权利要求 52]
根据权利要求48~51任一项所述的智能电池,其特征在于,所述其他状态包括以下至少一项:读失败、写失败和擦除失败。
[权利要求 53]
根据权利要求37所述的智能电池,其特征在于,所述闪存设备中任一存储单元存储有第一逻辑地址和第一存储单元的映射关系以及保留 地址和保留存储单元的映射关系。
[权利要求 54]
根据权利要求553所述的智能电池,其特征在于,所述任一存储单元为所述闪存设备中的最后一个存储单元。
[权利要求 55]
一种可移动平台,其特征在于,包括权利要求37~54任一项所述的智能电池。
[权利要求 56]
一种可读存储介质,其特征在于,所述可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现权利要求1~18任一项所述方法的步骤。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5(A)]  
[ 图 5(B)]  
[ 图 6(A)]  
[ 图 6(B)]  
[ 图 6(C)]  
[ 图 7]  
[ 图 8(A)]  
[ 图 8(B)]  
[ 图 8(C)]  
[ 图 8(D)]  
[ 图 8(E)]  
[ 图 8(F)]  
[ 图 9]  
[ 图 10(A)]  
[ 图 10(B)]  
[ 图 10(C)]  
[ 图 10(D)]  
[ 图 11(A)]  
[ 图 11(B)]  
[ 图 11(C)]  
[ 图 12]  
[ 图 13(A)]  
[ 图 13(B)]  
[ 图 13(C)]  
[ 图 13(D)]  
[ 图 14]  
[ 图 15(A)]  
[ 图 15(B)]  
[ 图 16(A)]  
[ 图 16(B)]  
[ 图 17(A)]  
[ 图 17(B)]  
[ 图 18(A)]  
[ 图 18(B)]  
[ 图 18(C)]  
[ 图 18(D)]  
[ 图 18(E)]  
[ 图 18(F)]  
[ 图 18(G)]  
[ 图 18(H)]  
[ 图 19]  
[ 图 20]