一种存储卡的参数确定方法、电子设备和存储介质与流程

摘要: 本申请涉及存储卡,特别是涉及一种存储卡的参数确定方法、电子设备和存储介质。背景技术:1、存储卡在出厂时,实际物理介质容量通常略大于标记的标称容量。但存储卡内部固...
一种存储卡的参数确定方法、电子设备和存储介质与流程

本申请涉及存储卡,特别是涉及一种存储卡的参数确定方法、电子设备和存储介质。

背景技术:

1、存储卡在出厂时,实际物理介质容量通常略大于标记的标称容量。但存储卡内部固件在上电初始化过程中会进行块对齐操作,该操作可能导致实际可用容量与实际物理介质容量产生偏差。若系统按照标称容量进行读写操作,可能在存储卡的高地址区域时访问不到存在的物理介质,导致数据损坏或系统异常。

技术实现思路

1、本申请主要解决的技术问题是提供一种存储卡的参数确定方法、电子设备和存储介质,能够确定存储卡的真实容量,避免数据写入虚标区域而导致数据损坏或系统异常。

2、为解决上述技术问题,本申请第一方面提供了一种存储卡的参数确定方法,包括:基于存储卡的标称容量,获取存储卡的原始地址范围;在原始地址范围内进行若干次读写检测,以从原始地址范围内搜索出容量边界地址,其中,在原始地址范围中,比容量边界地址小的地址均为有效读写地址,比容量边界地址大的至少一个地址为无效读写地址;基于容量边界地址,确定存储卡的真实容量。

3、其中,容量边界地址所在的边界最小存储单元中的各地址均为有效读写地址,边界最小存储单元的下一最小存储单元中的至少一个地址为无效读写地址。

4、其中,在原始地址范围内进行读写检测,以从原始地址范围内搜索出容量边界地址,包括:将原始地址范围作为初始的搜索范围,并从原始地址范围中选出初始的检测地址;对检测地址进行读写检测,得到检测地址的读写检测结果,其中,读写检测结果表征检测地址为有效读写地址还是无效读写地址;基于检测地址的读写检测结果,确定新的搜索范围;在当前不满足预设条件的情况下,从新的搜索范围中选出新的检测地址,并重新执行对检测地址进行读写检测及其后续步骤,直至满足预设条件;在当前满足预设条件的情况下,从最新的搜索范围中选出容量边界地址。

5、其中,从原始地址范围中选出初始的检测地址,包括:获取原始地址范围中的上位地址与预设偏移量的差值,作为初始的检测地址。

6、其中,基于检测地址的读写检测结果,确定新的搜索范围,包括:响应于读写检测结果表征检测地址为有效读写地址,将检测地址作为新的搜索范围的下位地址,并将当前的搜索范围的上位地址作为新的搜索范围的上位地址;和/或,响应于读写检测结果表征检测地址为无效读写地址,将当前的搜索范围的下位地址作为新的搜索范围的下位地址,并将检测地址作为新的搜索范围的上位地址。

7、其中,预设条件包括以下至少一者:新的搜索范围的上位地址与下位地址之间的差值小于或等于最小存储单元的容量、迭代次数超过预设次数。

8、其中,在原始地址范围内进行读写检测,包括:对于原始地址范围内的每个检测地址,在检测地址写入预设测试数据后,执行读操作,获取读取数据;响应于读取数据与预设测试数据相同,确定读写检测结果为检测地址为有效读写地址;响应于读取数据与预设测试数据不相同,确定读写检测结果为检测地址为无效读写地址。

9、其中,基于容量边界地址,确定存储卡的真实容量,包括:获取预留容量;将容量边界地址对应的容量与预留容量之间的差值,作为存储卡的安全容量。

10、其中,预留容量大于存储卡内部固件执行块对齐操作能够产生的最大地址偏差,和/或,预留容量为预设数值的整数次幂字节数。

11、其中,存储卡的参数确定方法还包括:获取存储卡在多次历史读操作的响应情况;基于多次历史读操作的响应情况,更新存储卡关于读操作的响应基准时间,其中,响应基准时间用于判断存储卡对读操作的响应是否超时。

12、其中,基于多次历史读操作的响应情况,更新存储卡关于读操作的响应基准时间,包括:响应于多次历史读操作的响应情况为至少第一数量次连续正常响应,减小响应权重;响应于多次历史读操作的响应情况为至少第二数量次连续超时未响应,增大响应权重;利用响应权重对响应基准时间进行加权,得到更新后的响应基准时间。

13、为解决上述技术问题,本申请第二方面提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有程序指令,处理器用于执行程序指令,以实现上述第一方面提供的方法。

14、为解决上述技术问题,本申请第三方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序指令,程序指令能够被处理器执行以实现上述第一方面提供的方法。

15、本申请的有益效果是:区别于现有技术的情况,在原始地址范围内进行若干次读写检测,以从原始地址范围内搜索出容量边界地址,如此,即可主动识别存储卡内部因固件块对齐操作产生的地址偏差。进一步基于容量边界地址,即可确定存储卡的真实容量,以避免数据写入虚标区域而导致数据损坏或系统异常。

1.一种存储卡的参数确定方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,每次所述读写检测是对所述原始地址范围内的目标检测地址进行先写后读操作,且下一次读写检测对应的目标检测地址是基于上一次读写检测结果确定的,所述目标检测地址的读写检测结果表征所述目标检测地址为无效读写地址还是有效读写地址;

3.根据权利要求1所述的方法,其特征在于,所述在所述原始地址范围内进行读写检测,以从所述原始地址范围内搜索出容量边界地址,包括:

4.根据权利要求3所述的方法,其特征在于,所述从所述原始地址范围中选出初始的检测地址,包括:

5.根据权利要求3所述的方法,其特征在于,所述基于所述检测地址的读写检测结果,确定新的搜索范围,包括:

6.根据权利要求3所述的方法,其特征在于,所述预设条件包括以下至少一者:所述新的搜索范围的上位地址与下位地址之间的差值小于或等于最小存储单元的容量、迭代次数超过预设次数。

7.根据权利要求1所述的方法,其特征在于,所述在所述原始地址范围内进行读写检测,包括:

8.根据权利要求1所述的方法,其特征在于,所述基于所述容量边界地址,确定所述存储卡的真实容量,包括:

9.根据权利要求8所述的方法,其特征在于,所述预留容量大于存储卡内部固件执行块对齐操作能够产生的最大地址偏差,和/或,所述预留容量为预设数值的整数次幂字节数。

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,所述基于多次历史读操作的响应情况,更新所述存储卡关于读操作的响应基准时间,包括:

12.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有程序指令,所述处理器用于执行所述程序指令,以实现权利要求1至11任一项所述的方法。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,所述程序指令能够被处理器执行以实现权利要求1至11任一项所述的方法。