掌桥专利:专业的专利平台
掌桥专利
首页

存储块异常磨损处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 09:24:30


存储块异常磨损处理方法、装置、电子设备及存储介质

技术领域

本发明属于计算机技术领域,尤其涉及一种存储块异常磨损处理方法、装置、电子设备及存储介质。

背景技术

闪存芯片(Nand flash memory)由成千上万存储单元按照一定的组织结构构成,闪存芯片包含若干个LUN(Logical Unit Number,逻辑单元号),而每个LUN又包含若干个Plane(平面),而每个Plane是由若干个Block(物理存储块)组成,每个Block由若干个Page(计算机编程语言指令)组成,如图1所示。

对闪存芯片的读写是以Page为单元,在编程Page时,首先要对Page所在的Block进行擦除,闪存的擦除是以Block为单位的;每个闪存芯片的Block都有擦写次数的限制,一般而言,SLC(Single Layer Cell,单层单元)闪存的Block的擦写次数可达10万次,MLC(Multi-Level Cell,多层单元)闪存一般是几千到几万次,TLC(Trinary-Level Cell,三层式单元)则几百到几千次,所以当Block的擦写次数到了寿命值,就代表着这个Block即将损坏,而无法保证里面数据的可靠性,直至完全损毁无法使用。

在计算机设备对存储产品LBA(逻辑块地址)数据的写入,需要把要写入的LBA地址映射到存储产品的物理地址,即逻辑地址数据实际上是写到FLASH(存储芯片)的哪个实体物理地址,则需要一个逻辑至实体地址映射表(Logical address to Physical addressTable,L2P Table)来记录;但如果存储产品的演算法没对写入数据的Physical address(物理地址)做很好的管控,会导致存储产品的物理存储块(Block)的损伤不一,导致有些物理存储块很快就被用完了寿命,而有些物理存储块的使用率还很低,这样会导致存储产品好的物理存储块减少而不足以保证存储产品的运行,同时令计算机设备没有足够的物理存储块来存数据而报废。

发明内容

本发明实施例的目的在于提供一种存储块异常磨损处理方法,旨在解决现有的物理存储块使用寿命低的问题。

本发明实施例是这样实现的一种存储块异常磨损处理方法,所述方法包括下述步骤:

将存储设备内所有的空白物理存储块的擦写次数清零;

当所述存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;

对所述目标物理存储块的擦写次数加一;

将数据存入所述目标物理存储块。

更进一步地,所述方法还包括下述步骤:

遍历找寻整个所述存储设备内所有的物理存储块的擦写次数,以获取最大擦写次数和最小擦写次数;

判断所述最大擦写次数和所述最小擦写次数的擦写次数之差是否在预设阈值内;

若否,则把所述最小擦写次数对应的所述物理存储块放入回收队列;

将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内。

更进一步地,所述将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内的步骤之后,所述方法还包括下述步骤:

更新逻辑至实体地址映射表;

释放所述最小擦写次数对应的物理存储块,并将其放入到空白物理存储块区域。

更进一步地,所述遍历找寻整个所述存储设备内所有的物理存储块的擦写次数的步骤之后,所述方法还包括下述步骤:

将擦写次数超过第一预设值的物理存储块放入隔离区。

更进一步地,所述方法还包括下述步骤:

当所述存储设备内预设数量的物理存储块的擦写次数均超过第二预设值时;

关闭所述存储设备的存储功能。

本发明另一实施例的目的还在于提供一种存储块异常磨损处理装置,所述装置包括:

重置模块,用于将存储设备内所有的空白物理存储块的擦写次数清零;

查询模块,用于当所述存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;

编写模块,用于对所述目标物理存储块的擦写次数加一;

存储模块,用于将数据存入所述目标物理存储块。

更进一步地,所述装置还包括:

擦写次数统计模块,用于遍历找寻整个所述存储设备内所有的物理存储块的擦写次数,以获取最大擦写次数和最小擦写次数;

判断模块,用于判断所述最大擦写次数和所述最小擦写次数的擦写次数之差是否在预设阈值内;

回收模块,用于当所述最大擦写次数和所述最小擦写次数的擦写次数之差是不在所述预设阈值内时,把所述最小擦写次数对应的所述物理存储块放入回收队列。

更进一步地,所述装置还包括:

更新模块,用于更新逻辑至实体地址映射表;

释放模块,用于释放所述最小擦写次数对应的物理存储块,并将其放入到空白物理存储块区域。

本发明另一实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述中任一项所述的存储块异常磨损处理方法中的步骤。

本发明另一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述的存储块异常磨损处理方法中的步骤。

本发明的有益效果是:通过将存储设备内所有的空白物理存储块的擦写次数清零;并当存储设备存入数据时,遍历寻找存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;然后对目标物理存储块的擦写次数加一;最后将数据存入目标物理存储块,如此,可实现每次存入的数据均被存储至擦写次数最少的空白物理存储块中,避免了存储块异常磨损,提高了存储设备的使用寿命。

附图说明

图1是现有技术中存储设备的组织结构示意图;

图2是本发明实施例提供的存储块异常磨损处理方法的流程图;

图3是本发明实施例提供的存储块异常磨损处理方法的又一流程图;

图4是本发明实施例提供的存储块异常磨损处理装置的模块示意图;

图5是本发明实施例提供的存储块异常磨损处理装置的又一模块示意图;

图6是本发明实施例提供的电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

本发明提供了一种存储块异常磨损处理方法,通过将数据存储至擦写次数最少的空白物理存储块中,避免了存储块异常磨损,提高了存储设备的使用寿命;并通过查找存储设备内最大擦写次数和最小擦写次数的物理存储块,解决了静态数据所在物理存储块使用次数低的问题;通过将擦写次数超过第一预设值的物理存储块放入隔离区,解决了物理存储块多次使用后容易丢失数据的问题;通过检测物理存储块的擦写次数,并及时关闭存储设备的存储功能,解决了存储设备寿命将至后存入数据导致数据损坏的问题。

以下通过具体实施例对本发明的具体实现进行详细描述。

请参阅图2,本发明第一实施例提供的一种存储块异常磨损处理方法,所述方法包括步骤S01至步骤S04:

步骤S01,将存储设备内所有的空白物理存储块的擦写次数清零。

其中,在最开始存储设备刚开好卡时,初始化所有空白块的擦写次数,使得他们的擦写次数都为0,并记录在存储设备中。

步骤S02,当所述存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块。

具体的,当作业人员通过主机端要往存储设备写入数据时,存储设备的固件会在空白物理存储块里遍历寻找一个擦写次数最小的物理存储块,并将这个擦写次数最小的物理存储块,作为数据存入的目标。

步骤S03,对所述目标物理存储块的擦写次数加一。

具体的,先对目标物理存储块进行擦除操作,以使得目标物理存储块的擦写次数加一,并记录好此时的擦写次数,以备下次查询使用,可以理解的,因为所有的空白物理存储块的擦写次数均做清零处理,而目标物理存储块的擦写次数加一后,目标物理存储块的擦写次数就会比其他空白物理存储块的擦写次数多一次,当主机端向存储设备内输入数据时,只需找到比空白物理存储块的擦写次数多一次的空白物理存储块,即为目标物理存储块,提高了寻找便利性,当存入数据后,目标物理存储块的擦写次数就会加一,可以保证主机端每次存入存储设备内的数据均被存储在擦写次数最小的物理存储块内。

步骤S04,将数据存入所述目标物理存储块。

需要说明的是,当主机端再次存入数据时,只需重复步骤S02至步骤S04即可,这样就确保每次写入数据的物理存储块都是空白物理存储块里擦写次数最小的,使得空白物理存储块里的擦写次数相差不大,避免某个物理存储块擦写次数猛增而很快走向损坏,提高了存储设备的使用寿命。

上述一种存储块异常磨损处理方法,通过将存储设备内所有的空白物理存储块的擦写次数清零;并当存储设备存入数据时,遍历寻找存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;然后对目标物理存储块的擦写次数加一,以得到目标物理存储块;将数据存入目标物理存储块,并重复所述遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块之后的步骤,以得到新的目标物理存储块,如此,可实现每次存入的数据均被存储至擦写次数最少的空白物理存储块中,避免了存储块异常磨损,提高了存储设备的使用寿命。

请参阅图3,本发明另一实施例提供的存储块异常磨损处理方法,所述方法还包括步骤S21至步骤S30。

步骤S21,将存储设备内所有的空白物理存储块的擦写次数清零。

步骤S22,当所述存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块。

步骤S23,对所述目标物理存储块的擦写次数加一。

步骤S24,将数据存入所述目标物理存储块。

步骤S25,遍历找寻整个所述存储设备内所有的物理存储块的擦写次数,以获取最大擦写次数和最小擦写次数。

可以理解的,由于静态数据通常无需修改,其被主机端重新修改到的几率很低,所以保存静态数据的物理存储块的擦写次数就一直不被更新,而一直保持在很小的一个值,而跟其他一直更新的物理存储块的擦写次数会相差很大,加快了其他更新快的物理存储块的老化损耗,影响到整个存储设备的使用寿命。所以需要固件的演算法介入处理这种情况,通过比较所有物理存储块的擦写次数,而不单单是空白物理存储块,即可同时将静态数据所处的物理存储块的查询次数统计出来。

具体的,所述遍历找寻整个所述存储设备内所有的物理存储块的擦写次数的步骤包括:通过加速器加速寻找整个所述存储设备内所有的物理存储块的擦写次数。

可以理解的,存储设备的存储量非常巨大,如需要遍历找寻整个所述存储设备内所有的物理存储块的擦写次数,需要非常长的时间,为了提高计算效率,可以通过加速器加速寻找整个所述存储设备内所有的物理存储块的擦写次数。

步骤S26,判断所述最大擦写次数和所述最小擦写次数的擦写次数之差是否在预设阈值内。

步骤S27,若否,则把所述最小擦写次数对应的所述物理存储块放入回收队列。若是,则直接进行步骤S29及步骤S29以后的步骤。

步骤S28,将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内。

通过上述方式,只有当把擦写次数最小的物理存储块上的有效的静态数据搬移到一个空白块池子里擦写次数最高的物理存储块上,这样避免频繁移动静态数据减少写入放大,这样就保证存储设备的所有物理存储块的擦写次数相差之值都控制在演算法设定的预设阈值之间,保证了每个物理存储块的均衡磨损,让存储设备的寿命最大化。例如,MLC(Multi-Level Cell,多层单元)闪存的存储设备的擦写次数一般是几千到几万次,如擦写次数为两万次,可以将预设阈值设定为一万九千次,当最大擦写次数和所述最小擦写次数超过一万九千次时,即可把最小擦写次数对应的物理存储块放入回收队列,并将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内,因静态数据被擦写的几率很低,就可以减小最大擦写次数对应的所述物理存储块被擦写的次数,防止其过快的损坏,提高了存储设备的使用寿命。

步骤S29,更新逻辑至实体地址映射表。

步骤S30,释放所述最小擦写次数对应的物理存储块,并将其放入到空白物理存储块区域。

具体的,在所述将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内的步骤之后,更新逻辑至实体地址映射表,以备下次数据写入使用。其中,为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,因此需要更新逻辑至实体地址映射表,以确保更换物理存储块的数据能够被正常访问。

在本发明的一个实施例中,还可以将擦写次数超过第一预设值的物理存储块放入隔离区;具体的,在通过步骤S25遍历找寻整个所述存储设备内所有的物理存储块的擦写次数之后,只需将所有物理存储块的擦写次数与第一预设值对比,并将擦写次数超过第一预设值的物理存储块挑选出来,放入隔离区;可以理解的,当物理存储块的擦写次数超过一定次数时,其存入数据后容易损坏,导致存入的数据丢失,为了防止数据丢失,可以将使用寿命较少的物理存储块隔离起来,使其擦除数据后无法再写入数据,保证数据安全。例如,第一预设值可以为物理存储块最大擦写次数的百分之九十九,以便在保证物理存储块被充分使用的前提下,确保数据安全。

在本发明的一个实施例中,当存储设备内预设数量的物理存储块的擦写次数均超过第二预设值时,关闭所述存储设备的存储功能,具体的,当存储设备内预设数量的物理存储块的擦写次数均超过第二预设值时,只允许主机端提取数据,而不允许主机端存入数据,且同时提醒用户及时更换存储设备,例如,当前存储设备的百分之九十的物理存储块的擦写次数超过其最大擦写次数的百分之九十九时,表示存储设备使用寿命将耗尽,再存入数据时,数据丢失的概率极大,为了确保用户数据安全,需要及时更换存储设备,并预留剩余的擦写次数供用户做数据备份,确保用户的数据安全,提高了用户体验。

本发明另一实施例提供的一种存储块异常磨损处理装置,请参阅图4,所述装置包括:

重置模块10,用于将存储设备内所有的空白物理存储块的擦写次数统一;

查询模块20,用于在存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;

编写模块30,用于对所述目标物理存储块的擦写次数加一;

存储模块40,用于将数据存入所述目标物理存储块。

上述存储块异常磨损处理装置,通过重置模块10将存储设备内所有的空白物理存储块的擦写次数统一;通过查询模块20在存储设备存入数据时,遍历寻找所述存储设备内任一擦写次数最小的一个物理存储块,以得到目标物理存储块;通过编写模块30对所述目标物理存储块的擦写次数加一;通过存储模块40将数据存入所述目标物理存储块,如此,可实现每次存入的数据均被存储至擦写次数最少的空白物理存储块中,避免了存储块异常磨损,提高了存储设备的使用寿命。

本发明另一实施例的中,请参阅图5,存储块异常磨损处理装置还包括:

擦写次数统计模块50,用于遍历找寻整个所述存储设备内所有的物理存储块的擦写次数,以获取最大擦写次数和最小擦写次数;

判断模块60,用于判断所述最大擦写次数和所述最小擦写次数的擦写次数之差是否在预设阈值内;

回收模块70,用于当所述最大擦写次数和所述最小擦写次数的擦写次数之差是不在所述预设阈值内时,把所述最小擦写次数对应的所述物理存储块放入回收队列。

上述存储块异常磨损处理装置,通过回收模块70把擦写次数最小的物理存储块上的有效的静态数据搬移到一个空白块池子里擦写次数最高的物理存储块上,这样避免频繁移动静态数据减少写入放大,这样就保证存储设备的所有物理存储块的擦写次数相差之值都控制在演算法设定的预设阈值之间,保证了每个物理存储块的均衡磨损,让存储设备的寿命最大化。

本发明另一实施例的中,请参阅图5,存储块异常磨损处理装置还包括:

更新模块80,用于更新逻辑至实体地址映射表;

释放模块90,用于释放所述最小擦写次数对应的物理存储块,并将其放入到空白物理存储块区域。

上述存储块异常磨损处理装置,通过回收模块70将所述回收队列内的所述物理存储块所存储的数据转移至所述最大擦写次数对应的所述物理存储块内之后,再通过更新模块80更新逻辑至实体地址映射表,以备下次数据写入使用。其中,为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,因此需要更新逻辑至实体地址映射表,以确保更换物理存储块的数据能够被正常访问。

本发明另一实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述中任一项所述的存储块异常磨损处理方法中的步骤。

为解决上述技术问题,本申请实施例还提供了一种电子设备,用于存储块异常磨损的处理。具体请参阅图6,图6为本实施例电子设备基本结构框图,如图6所示。

所述电子设备100包括通过系统总线相互通信连接存储器101、处理器102、网络接口103。需要指出的是,图中仅示出了具有组件101-103的电子设备100,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器101至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器101可以是所述电子设备100的内部存储单元,例如该电子设备100的硬盘或内存。在另一些实施例中,所述存储器101也可以是所述电子设备100的外部存储设备,例如该电子设备100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器101还可以既包括所述电子设备100的内部存储单元也包括其外部存储设备。本实施例中,所述存储器101通常用于存储安装于所述电子设备100的操作系统和各类应用软件,例如崩溃文件处理方法的程序代码等。此外,所述存储器101还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器102在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器102通常用于控制所述电子设备100的总体操作。本实施例中,所述处理器102用于运行所述存储器101中存储的程序代码或者处理数据,例如运行上述存储块异常磨损处理方法的程序代码。

所述网络接口103可包括无线网络接口或有线网络接口,该网络接口103通常用于在所述电子设备100与其他电子设备之间建立通信连接。

本发明另一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述的存储块异常磨损处理方法中的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 存储块异常磨损处理方法、装置、电子设备及存储介质
  • 直播异常的处理方法和装置、电子设备和存储介质
技术分类

06120112152525