CN115269451B - 闪存垃圾回收方法、装置及可读存储介质 - Google Patents

闪存垃圾回收方法、装置及可读存储介质 Download PDF

Info

Publication number
CN115269451B
CN115269451B CN202211186299.5A CN202211186299A CN115269451B CN 115269451 B CN115269451 B CN 115269451B CN 202211186299 A CN202211186299 A CN 202211186299A CN 115269451 B CN115269451 B CN 115269451B
Authority
CN
China
Prior art keywords
time
threshold
target
write request
equal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211186299.5A
Other languages
English (en)
Other versions
CN115269451A (zh
Inventor
曾裕
赖鼐
龚晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Miaocun Technology Co ltd
Original Assignee
Zhuhai Miaocun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Miaocun Technology Co ltd filed Critical Zhuhai Miaocun Technology Co ltd
Priority to CN202211186299.5A priority Critical patent/CN115269451B/zh
Publication of CN115269451A publication Critical patent/CN115269451A/zh
Application granted granted Critical
Publication of CN115269451B publication Critical patent/CN115269451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种闪存垃圾回收方法、装置及可读存储介质,该方法包括:响应来自目标设备的写请求指令,获取当前闪存的上电时间;当上电时间大于或等于时间阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新第一目标次数的数值为0,其中,第一目标次数为上电时间大于或等于时间阈值时,接收到的写请求指令的次数;当上电时间小于时间阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新第二目标次数的数值为0,其中,第二目标次数为上电时间小于时间阈值时,接收到的写请求指令的次数;其中,第一阈值小于第二阈值。用以缩减闪存相关的设备的启动时间,本发明可广泛应用于闪存垃圾回收领域。

Description

闪存垃圾回收方法、装置及可读存储介质
技术领域
本发明涉及闪存的垃圾回收领域,尤其是一种闪存垃圾回收方法、装置及可读存储介质。
背景技术
闪存(NAND Flash)作为一种重要的存储设备,可以提供较高存储性能,但是也存在擦写寿命、data retention(数据保存时间)、read disturb(读干扰)问题。安卓设备在长时间不上电或者经过高温烘烤后,使用的闪存设备中的数据可能出现大量的错误,为保证数据安全性,需要通过垃圾回收操作将数据搬移到一个新块中,垃圾回收一般出现在写操作流程的后台操作中,而安卓设备在***启动过程中存在大量的读写操作,故在***启动过程中,闪存设备可能存在大量的数据搬移操作,极大降低了性能,增加了安卓设备的启动时间。
发明内容
有鉴于此,本发明实施例提供一种闪存垃圾回收方法、装置及可读存储介质,以缩减闪存相关的设备的启动时间。
本发明的一方面提供了一种闪存垃圾回收方法,包括:响应来自目标设备的写请求指令,获取当前闪存的上电时间;当所述上电时间大于或等于时间阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新所述第一目标次数的数值为0,其中,所述第一目标次数为所述上电时间大于或等于所述时间阈值时,接收到的所述写请求指令的次数;当所述上电时间小于所述时间阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新所述第二目标次数的数值为0,其中,所述第二目标次数为所述上电时间小于所述时间阈值时,接收到的所述写请求指令的次数;其中,所述第一阈值小于所述第二阈值。
根据本发明的一些实施例,所述执行垃圾回收操作包括以下步骤:获取闪存中存在有效数据的数据块作为有效数据块;检测所述有效数据块是否为不稳定的数据块,若是,则记录不稳定的所述有效数据块的无效页,并将不稳定的所述有效数据块作为目标数据集中的目标数据块;反之,则遍历下一个有效数据块。根据本发明的一些实施例,还包括:获取所述目标数据集中无效页的数量最多的所述目标数据块进行垃圾回收。
根据本发明的一些实施例,获取所述目标数据集中无效页的数量最多的所述目标数据块,包括以下步骤:重复比较两个所述目标数据块的无效页的数量,选取其中无效页的数量更多的目标数据块进行下一轮的比较,直至遍历比较完所有所述目标数据块,得到所述无效页的数量最多的目标数据块。
根据本发明的一些实施例,还包括:响应来自目标设备的写请求指令,获取接收到的写请求指令的总量;当所述写请求指令的总量大于或等于指令阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新所述第一目标次数的数值为0,其中,所述第一目标次数为所述写请求指令的总量大于或等于所述指令阈值时,接收到的所述写请求指令的次数;当所述写请求指令的总量小于指令阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新所述第二目标次数的数值为0,其中,所述第二目标次数为所述写请求指令的总量小于所述指令阈值时,接收到的所述写请求指令的次数;其中,所述第一阈值小于所述第二阈值。
本发明的另一方面提供了一种闪存垃圾回收装置,包括:第一模块,用于响应来自目标设备的写请求指令,获取当前闪存的上电时间;第二模块,用于当所述上电时间大于或等于时间阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新所述第一目标次数的数值为0,其中,所述第一目标次数为所述上电时间大于或等于所述时间阈值时,接收到的所述写请求指令的次数;第三模块,用于当所述上电时间小于所述时间阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新所述第二目标次数的数值为0,其中,所述第二目标次数为所述上电时间小于所述时间阈值时,接收到的所述写请求指令的次数;其中,所述第一阈值小于所述第二阈值。
本发明的另一方面提供了一种电子设备,包括处理器以及存储器;所述存储器用于存储程序;所述处理器执行所述程序实现如上所述的任一项所述的闪存垃圾回收方法。
根据本发明实施例的电子设备,至少具有与上述的闪存垃圾回收方法同样的有益效果。
本发明的另一方面提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如上所述的任一项所述的闪存垃圾回收方法。
根据本发明实施例的计算机可读存储介质,至少具有与上述的闪存垃圾回收方法同样的有益效果。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例通过每次接收到写请求指令就判断上电时间是否大于或等于时间阈值,如果大于或等于,说明安卓设备已经完成了启动工作,因此等待接收到的写请求指令的次数到达第一阈值就执行垃圾回收操作,如果小于或者等于,说明安卓设备正在启动过程中,因此等待接收到的写请求指令的次数到达第二阈值再执行垃圾回收操作。第一阈值要远远小于第二阈值,从而致使在安卓设备完成启动后,以更频繁的频率执行垃圾回收工作使得数据进行刷新,而在安卓设备启动中,减少垃圾回收的次数,保持安卓设备启动时候的读写性能,减少了启动的时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的闪存垃圾回收方法的步骤流程图;
图2是本发明实施例提供的闪存垃圾回收装置的示意框图;
图3是本发明实施例的设备的示意框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
闪存设备存在data retention的问题,即数据只能在NAND Flash介质中稳定保留一段时间,闪存设备长时间不上电或者经过高温烘烤,数据就会发生位翻转,当出现位翻转的数量达到一定程度后,ECC无法纠错,数据就出错了。一般来说,需要在闪存设备上电后尽快通过扫描方式将数据不稳定的块找出来,并且将其中的有效数据通过垃圾回收搬移到一个新块中,实现数据刷新。但是,数据刷新会在一段时间内降低闪存设备的读写性能。
安卓设备在长时间不上电或者经过高温烘烤后,使用的闪存设备中的数据可能出现大量的错误,为保证数据安全性,需要通过垃圾回收操作将数据搬移到一个新块中,垃圾回收一般出现在写操作流程的后台操作中,安卓设备在***启动过程中存在大量的读写操作,故在***启动过程中,闪存设备可能存在大量的数据搬移操作。闪存存在的dataretention特性,适合于闪存中的每一个数据块,即所有数据块在经过相同的dataretention周期,其中的数据的出错趋势是一致的,即大部分数据块都可能出现类似的数据不稳定的情况。所以,安卓设备在经过长时间不上电或者经过高温烘烤后,使用的闪存设备中的数据可能出现大量的错误,存在大量的不稳定的数据块需要通过垃圾回收操作将数据搬移到新块中,实现数据刷新的目的。而现有的设计方案中,闪存从上电开始即在后台操作中通过垃圾回收操作将数据搬移到新块中,实现数据刷新。由于存在大量不稳定的数据块,通过后台垃圾回收操作将这些数据块中的数据搬移到新的数据块需要持续很长一段时间,在这段时间内闪存的读写性能会急剧下降,增加了安卓设备的启动时间。通过本申请优化垃圾回收的策略,使得闪存设备在安卓设备上电启动的阶段,减少垃圾回收的数量,同时从众多不稳定的数据块中选择有效数据最少的数据块作为垃圾回收源块,在需要启动垃圾回收时,尽可能降低垃圾回收的时间,实现兼顾数据安全性的同时保证安卓***启动的速度。可以应用在所有闪存相关的存储设备中。
以下是涉及到的术语解释:
FTL:FTL(Flash Translation Layer)译为闪存转换层,是Flash Memory(存储介质)与Device Controller(设备主控器)之间的连接关系。在整个储存体系中,FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。在进行地址转换的同时,FTL还兼顾Flash的管理,不仅需要对Flash上的各个Block进行擦写次数控制(磨损均衡),还需要管理Flash上的无用数据(垃圾回收)。
参照图1,图1为具体实施例提供的一种闪存垃圾回收方法的流程图,包括步骤S100-S300:
步骤S100,响应来自目标设备的写请求指令,获取当前闪存的上电时间。
具体的,目标设备上电后,FTL在后台启动计时和计算HOST发送的写请求数量,目标设备可以为安卓设备。
步骤S200,判断上电时间是否大于或等于时间阈值,如果大于或等于,则等待第一目标次数等于第一阈值,执行垃圾回收操作,更新第一目标次数的数值为0,其中,第一目标次数为上电时间大于或等于时间阈值时,接收到的写请求指令的次数。
具体的,时间阈值是根据本领域技术人员多次测试得到的结果,时间阈值设置为,当上电时间大于或等于时间阈值的时候,设备基本完成启动工作。判断当前的上电时间是否大于或等于时间阈值,如果大于或等于,说明设备已经完成启动,则等待第一目标次数,即接收到的写请求指令的次数为第一阈值的时候,就启动垃圾回收操作,并更新第一目标次数为0,重新等待新的一轮写请求指令等于第一阈值。
步骤S300,如果上电时间小于时间阈值,则等待第二目标次数等于第二阈值,执行垃圾回收操作,更新第二目标次数的数值为0,其中,第二目标次数为上电时间小于时间阈值时,接受到的写请求指令的次数;其中,第一阈值小于第二阈值。
具体的,上电时间小于时间阈值,说明安卓设备正在启动中,正在进行大量的读写操作,因此,为了保持设备启动过程中的性能,要降低闪存中垃圾回收的次数,采用的方法就是,等待第二目标次数,即接收到的写请求指令的次数到达第二阈值的时候,再执行垃圾回收操作,并将第二目标次数的数值更新为0,用于等待下一轮的写请求指令的次数到达阈值。将第二阈值的数值设置得远远大于第一阈值的数值,从而将垃圾回收的执行次数减少,保证设备启动过程中的性能,降低了启动时间。
在另一具体实施例中,除了使用时间阈值作为判断设备是否启动完成的标准,还可以根据接收的写请求指令的数量来判定,具体步骤包括:
响应来自设备的写请求指令,获取接收到的写请求指令的总量;
判断写请求指令的总量是否大于或等于指令阈值,如果大于或等于,则等待第一目标次数等于第一阈值,执行垃圾回收操作,更新第一目标次数的数值为0,其中,第一目标次数为写请求指令的总量大于或等于指令阈值时,接收到的写请求指令的次数;
如果写请求指令的总量小于指令阈值,则等待第二目标次数等于第二阈值,执行垃圾回收操作,更新第二目标次数的数值为0,其中,第二目标次数为写请求指令的总量小于指令阈值时,接收到的写请求指令的次数;其中,第一阈值小于第二阈值。
具体地,接收写请求指令的数量总量,判断写请求指令的总量是否大于或等于指令阈值,要说明的是,指令阈值是根据本领域技术人员多次测试得到的结果,使得当写请求指令的总量等于或者刚大于指令阈值的时候,设备完成启动。设置第一阈值远小于第二阈值,如果写请求指令的总量大于或者等于指令阈值,则代表设备完成启动,因此每隔第一阈值的次数就发送执行一次垃圾回收操作,即,确定第一目标次数,即接收到的写请求指令次数等于第一阈值,则执行一次垃圾回收操作,并将第一目标次数的数值更新为0,用于下一轮计算接收的写请求指令的次数,判断是否可以执行垃圾回收操作。如果写请求指令的数量总量小于指令阈值,则代表设备正在启动当中,确定接收到的写请求指令的次数,即第二目标次数等于第二阈值,则执行一次垃圾回收操作,并将第二目标次数的数值更新为0,用于下一轮计算接收到的写请求指数的数量。要说明的是,第一阈值设置得远小于第二阈值,是因为在设备启动完成后,说明设备启动过程当中的大量读写操作基本完成,因此此时关注将大量的不稳定的数据块通过垃圾回收操作将数据搬移到新块中,完成数据刷新的工作,因此此时将第一阈值设置得远小于第二阈值,提高垃圾回收的频率,使得数据刷新更快,保证了数据的不丢失。而设备正在启动中的时候,需要执行大量的读写操作,为了避免数据的刷新影响到设备的启动,将第二阈值设置得远大于第一阈值,使得在设备启动过程中,减少垃圾回收的次数,减少了启动的时间。
在另一具体实施例中,执行垃圾回收操作还包括
获取闪存中存在有效数据的数据块作为有效数据块;
检测有效数据块是否为不稳定的数据块,如果是,则记录不稳定的有效数据块的无效页,并将不稳定的有效数据块作为目标数据集中的目标数据块,如果不是,则遍历下一个有效数据块;
获取目标数据集中无效页的数量最多的目标数据块进行垃圾回收。
具体的,需要在闪存设备上电后尽快通过扫描方式将数据不稳定的块找出来,并且将其中的有效数据通过垃圾回收搬移到一个新块中,实现数据刷新。因此,通过从众多不稳定的数据块中选择有效数据最少的数据块作为垃圾回收源块,尽可能降低垃圾回收的时间,实现兼顾数据安全性的同时保证安卓***启动的速度。具体包括:遍历所有数据块,获取其中存在有效数据的数据块作为有效数据块,检测有效数据块是否为不稳定的数据块,如果是,则记录下不稳定的有效数据块的无效页的数量并将这个不稳定的有效数据块作为目标数据集中的目标数据块,如果不是,则继续检测下一个,直到所有有效数据块都检测完成。获取目标数据集中无效页的数量最多的目标数据块进行垃圾回收。
在另一具体实施例中,判断目标数据集中那个目标数据块的无效页的数量最多的方法包括:
重复比较两个目标数据块的无效页的数量,选取其中无效页的数量更多的数据块进行下一轮的比较,直至遍历比较完所有目标数据块,得到无效页的数量最多的目标数据块。即,比较当前的不稳定的目标数据块与上一个记录的不稳定的数据块的无效页数量大小,记录下无效页数量最多的数据块,直到完成所有数据块的比较,得到最终的无效页数量最多的不稳定的目标数据块作为垃圾回收源块。要说明的是,选取其中无效页数量最多的目标数据块的方法并不仅仅局限于以上这种,还可以每两个目标数据块进行比较选取出当中无效页数量最多的那个组成一个集合,再在集合中再次每两个进行比较,直到选取出最终无效页的数量最多的那个目标数据块。除此之外,常用的进行比较的方法都可以用于执行选取无效页的数量最多的目标数据块。
以下提供具体场景示例:
安卓设备在长期没有开机使用或者被高温烘烤之后,数据会发生位翻转,当出现位翻转的数量达到一定程度后,ECC无法纠错,数据就出错了。因此,为了避免这种问题,常用技术手段是需要在设备上电后尽快通过扫描的方法将数据不稳定的数据块找出来,并且将其中有效的数据通过垃圾回收的方式搬移到一个新块中,实现数据的刷新,保证数据的安全性。但是,垃圾回收的过程通常出现在写操作流程的后台操作中,而安卓设备在***启动过程中存在大量的读写操作,所以在安卓设备的***启动过程中,可能同时存在大量的数据搬移操作,这就导致了安卓设备降低了启动性能,增加了安卓设备的启动时间。为了降低安卓设备的启动时间,在一实施例中,获取设备的上电时间,判断上电时间是否大于时间阈值,其中时间阈值是多次实验测试得出的经验值,当上电时间到达时间阈值,设备基本完成了启动。当上电时间大于或者等于时间阈值,说明设备基本完成启动,此时可以更频繁地执行垃圾回收操作,提高数据刷新的速度,因此,设置第一阈值较小,等待接收到的写请求指令的次数,即第一目标次数等于第一阈值的时候就执行垃圾回收操作,并更新第一目标次数的数值为0,等待新一轮计数接收了多少写请求指令;当上电时间小于时间阈值的时候,说明设备还没有完成启动操作,此时需要尽量减少设备的启动过程中读写操作后台中的垃圾回收操作,提高启动的速率,降低启动的时间,因此,采用的方法是设置第二阈值较大,从而保证在采集足够的写请求指令后才开始执行垃圾回收,降低了在设备启动过程中垃圾回收的次数,等待接收到的写请求指令的次数,即第二目标次数等于第二阈值的时候才执行垃圾回收操作,并更新第二目标次数的数值为0,等待新一轮计数接收了多少写请求指令。因此,设置的时候,第一阈值远小于第二阈值。此外,除了比较上电时间和时间阈值作为设备是否启动的判断依据,也可以比较接收到的写请求指令总量和指令阈值,其中指令阈值为经过多次实验测试的经验值,从而判断设备是否完成启动。更进一步的,除了单独将上电时间和时间阈值进行对比、写请求指令总量和指令阈值进行对比,还可以将二者进行结合,即,先比较上电时间和时间阈值的大小,再比较写请求指令总量和指令阈值的大小,反过来也可以。示例性的,当上电时间大于或者等于时间阈值,等待第一目标次数等于第一阈值时执行垃圾回收操作;当上电时间小于时间阈值的时候,进一步比较写请求指令总量与指令阈值,如果写请求指令总量小于指令阈值,则等待第二目标次数等于第二阈值时候执行垃圾回收操作,如果写请求指令总量大于指令阈值,等待第一目标次数等于第一阈值时执行垃圾回收操作。可以理解的是,判断上电时间和时间阈值的大小与判断写请求指令总量和指令阈值的大小的顺序反过来也是如此,通过这种操作,更精准地判断出设备是否处于启动过程中。以上方法结合安卓***启动时间和启动时候的读写请求数量,设置垃圾回收策略调整的阈值参数,使得在设备启动阶段尽可能减少因为通过垃圾回收搬移不稳定数据块中数据带来的性能影响,同时兼顾保证数据安全性。
而在垃圾回收操作中,数据块中的数据会变老或者无效,而在长期没启动或者高温烘烤的设备中,更是存在大量错误的数据,这些错误的数据中的有效数据需要进行数据刷新。而随着HOST的持续写入,闪存的存储空间慢慢变小,直到耗尽,如果不及时清除垃圾数据,HOST就无法写入,因此就要进行垃圾回收操作,垃圾回收操作的具体过程就是,将几个数据块中的有效数据集中搬到一个新的数据块中,在将原有的几个数据块进行擦除,这样就有新的数据块可以用了,数据也完成了刷新。被更新的数据会被放到别的物理页上,而不是覆盖原有的数据,因此包含新版本数据的页被称为有效页,新版本数据被称为有效数据。包含旧版本数据的页被称为无效页,或称为脏页,脏页经过擦除操作后成为空闲页,才可以重新写入数据。因为Flash是以块为单位执行擦除的,因此需要将脏页所在块上的所有物理页都擦除,在擦除之前需要检查此块上是否存在有效页,如果存在就必须先转移到其他块上。因此,在一实施例中,遍历所有存在有效数据的数据块作为有效数据块,检测有效数据块是否为不稳定的数据块,是就记录无效页并作为目标数据集中的目标数据块,反之则继续遍历。获取其中无效页的数量最多的目标数据块进行垃圾回收。选取的具体过程为,每遍历一个有效数据的不稳定数据块就记录下无效页的数量,比较当前不稳定的数据块与上一个记录的不稳定的数据块的无效页数量大小,直到遍历完成对有效数据块中不稳定数据块的比较,得到其中无效页数量最多的不稳定的数据块。通过选择无效页数量最多的不稳定数据块,减少垃圾回收不稳定数据带来的性能损失,同时兼顾保证数据安全性。
一方面,参照图2,本实施例提供一种闪存垃圾回收装置,至少包括:第一模块410,第二模块420,第三模块430。
具体地,设备上电后,第一模块410响应来自设备,如安卓设备的写请求指令,并计算当前闪存的上电时间;第二模块420与第一模块410相连接,第二模块420接收第一模块410中的上电时间,判断上电时间跟时间阈值的大小,如果上电时间大于或者等于时间阈值,则写请求指令每间隔第一阈值进行一次垃圾回收操作,也就是,等待接收到的写请求指令,即第一目标次数等于第一阈值的时候,则执行垃圾回收操作,并将第一目标次数的数值更新为0,方便下一轮计算接收到的写请求指令;第三模块430分别与第一模块410和第二模块420相连接,第三模块430接收第一模块410中的上电时间,获取第二模块420的判断结果,判断上电时间跟时间阈值的大小,如果上电时间小于时间阈值,则写请求指令每间隔第二阈值进行一次垃圾回收操作,也就是,等待接收到的写请求指令,即第二目标次数等于第二阈值的时候,则执行垃圾回收操作,并将第二目标次数的数值更新为0,方便下一轮计算接收到的写请求指令。要说明的是,第一阈值远小于第二阈值,上电时间大于或等于时间阈值的时候,说明设备已经完成启动,因此,可以更频繁地将数据块进行垃圾回收从而更新数据,而当上电时间小于时间阈值的时候,说明设备正在进行启动,为了降低对设备启动时候读写性能的影响,减少在这时候执行垃圾回收的操作,因此将第二阈值设置得远大于第一阈值,接收到更多写请求后再执行垃圾回收操作。
参照图3,本实施例提供一种电子设备,包括处理器510以及与处理器510耦接的存储器520,存储器520存储有可被处理器510执行的程序指令,处理器510执行存储器520存储的程序指令时实现上述的目标风险网站检测方法。其中,处理器510还可以称为CPU(Central Processing Unit,中央处理单元)。处理器510可能是一种集成电路芯片,具有信号的处理能力。处理器510还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器,或者,通用处理器还可以是任何常规的处理器等。存储器520可包括各种组件(例如,机器可读介质),包括但不限于随机存取存储器组件、只读组件及其任意组合。存储器520还可包括:(例如,存储于一个或多个机器可读介质的)指令(例如,软件);该指令实现上述实施例中的目标风险网站检测方法。该电子设备具有搭载并运行本发明实施例提供的目标风险网站检测的软件***的功能,例如,个人计算机(Personal Computer,PC)、手机、智能手机、个人数字助手 (Personal DigitalAssistant,PDA)、可穿戴设备、掌上电脑PPC(Pocket PC)、平板电脑等。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (7)

1.一种闪存垃圾回收方法,其特征在于,包括:
响应来自目标设备的写请求指令,获取当前闪存的上电时间;
当所述上电时间大于或等于时间阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新所述第一目标次数的数值为0,其中,所述第一目标次数为所述上电时间大于或等于所述时间阈值时,接收到的所述写请求指令的次数,其中,当上电时间大于或等于时间阈值时,设备完成启动工作;
当所述上电时间小于所述时间阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新所述第二目标次数的数值为0,其中,所述第二目标次数为所述上电时间小于所述时间阈值时,接收到的所述写请求指令的次数,其中,当上电时间小于时间阈值,设备正在启动中;
其中,所述第一阈值小于所述第二阈值;
还包括以下步骤:
响应来自目标设备的写请求指令,获取接收到的写请求指令的总量;
当所述写请求指令的总量大于或等于指令阈值,则等待第三目标次数等于第三阈值时执行垃圾回收操作,更新所述第三目标次数的数值为0,其中,所述第三目标次数为所述写请求指令的总量大于或等于所述指令阈值时,接收到的所述写请求指令的次数;
当所述写请求指令的总量小于指令阈值,则等待第四目标次数等于第四阈值时执行垃圾回收操作,更新所述第四目标次数的数值为0,其中,所述第四目标次数为所述写请求指令的总量小于所述指令阈值时,接收到的所述写请求指令的次数;
其中,所述第三阈值小于所述第四阈值;
还包括以下步骤:
将上电时间和时间阈值的对比、写请求指令总量和指令阈值的对比相结合,从而更精准地判断设备是否处于启动过程中。
2.根据权利要求1所述的一种闪存垃圾回收方法,其特征在于,所述执行垃圾回收操作包括以下步骤:
获取闪存中存在有效数据的数据块作为有效数据块;
检测所述有效数据块是否为不稳定的数据块,若是,则记录不稳定的所述有效数据块的无效页,并将不稳定的所述有效数据块作为目标数据集中的目标数据块;反之,则遍历下一个有效数据块。
3.根据权利要求2所述的一种闪存垃圾回收方法,其特征在于,还包括:
获取所述目标数据集中无效页的数量最多的所述目标数据块进行垃圾回收。
4.根据权利要求3所述的一种闪存垃圾回收方法,其特征在于,获取所述目标数据集中无效页的数量最多的所述目标数据块,包括以下步骤:
重复比较两个所述目标数据块的无效页的数量,选取其中无效页的数量更多的目标数据块进行下一轮的比较,直至遍历比较完所有所述目标数据块,得到所述无效页的数量最多的目标数据块。
5.一种闪存垃圾回收装置,其特征在于,包括:
第一模块,用于响应来自目标设备的写请求指令,获取当前闪存的上电时间;
第二模块,用于当所述上电时间大于或等于时间阈值,则等待第一目标次数等于第一阈值时执行垃圾回收操作,更新所述第一目标次数的数值为0,其中,所述第一目标次数为所述上电时间大于或等于所述时间阈值时,接收到的所述写请求指令的次数,其中,当上电时间大于或等于时间阈值时,设备完成启动工作;
第三模块,用于当所述上电时间小于所述时间阈值,则等待第二目标次数等于第二阈值时执行垃圾回收操作,更新所述第二目标次数的数值为0,其中,所述第二目标次数为所述上电时间小于所述时间阈值时,接收到的所述写请求指令的次数,其中,当上电时间小于时间阈值,设备正在启动中;
其中,所述第一阈值小于所述第二阈值;
还包括:
第四模块,用于响应来自目标设备的写请求指令,获取接收到的写请求指令的总量;
第五模块,用于当所述写请求指令的总量大于或等于指令阈值,则等待第三目标次数等于第三阈值时执行垃圾回收操作,更新所述第三目标次数的数值为0,其中,所述第三目标次数为所述写请求指令的总量大于或等于所述指令阈值时,接收到的所述写请求指令的次数;
第六模块,用于当所述写请求指令的总量小于指令阈值,则等待第四目标次数等于第四阈值时执行垃圾回收操作,更新所述第四目标次数的数值为0,其中,所述第四目标次数为所述写请求指令的总量小于所述指令阈值时,接收到的所述写请求指令的次数;其中,所述第三阈值小于所述第四阈值;还用于将上电时间和时间阈值的对比、写请求指令总量和指令阈值的对比相结合,从而更精准地判断设备是否处于启动过程中。
6.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至4中任一项所述的方法。
CN202211186299.5A 2022-09-28 2022-09-28 闪存垃圾回收方法、装置及可读存储介质 Active CN115269451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211186299.5A CN115269451B (zh) 2022-09-28 2022-09-28 闪存垃圾回收方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211186299.5A CN115269451B (zh) 2022-09-28 2022-09-28 闪存垃圾回收方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN115269451A CN115269451A (zh) 2022-11-01
CN115269451B true CN115269451B (zh) 2023-05-12

Family

ID=83756387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211186299.5A Active CN115269451B (zh) 2022-09-28 2022-09-28 闪存垃圾回收方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN115269451B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909495B (zh) * 2023-09-14 2023-12-15 合肥康芯威存储技术有限公司 一种存储装置及其控制方法
CN117033268B (zh) * 2023-10-09 2024-02-09 苏州元脑智能科技有限公司 一种ssd控制器、数据处理方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347001A (zh) * 2020-10-13 2021-02-09 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN114968839A (zh) * 2022-05-31 2022-08-30 山东云海国创云计算装备产业创新中心有限公司 硬盘垃圾回收方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628758A (zh) * 2018-03-14 2018-10-09 深圳忆联信息***有限公司 一种选择垃圾回收目标块的方法及固态硬盘
CN110543284A (zh) * 2019-09-05 2019-12-06 北京兆易创新科技股份有限公司 存储块的垃圾回收方法及装置、电子设备和存储介质
CN113971137A (zh) * 2020-07-22 2022-01-25 华为技术有限公司 一种垃圾回收方法及装置
CN114356248B (zh) * 2022-03-18 2022-06-14 苏州浪潮智能科技有限公司 一种数据处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347001A (zh) * 2020-10-13 2021-02-09 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN114968839A (zh) * 2022-05-31 2022-08-30 山东云海国创云计算装备产业创新中心有限公司 硬盘垃圾回收方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN115269451A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN115269451B (zh) 闪存垃圾回收方法、装置及可读存储介质
US7979626B2 (en) Flash recovery employing transaction log
US7774390B2 (en) Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same
JP6817318B2 (ja) フラッシュメモリデバイスにアクセスするための方法および装置
JP5696118B2 (ja) 不揮発性メモリシステムのためのウィーブシーケンスカウンタ
TWI467369B (zh) 混合密度記憶體系統及其控制方法
US8745310B2 (en) Storage apparatus, computer system, and method for managing storage apparatus
US8949512B2 (en) Trim token journaling
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
CN108369818B (zh) 一种闪存设备的刷新方法和装置
KR101900760B1 (ko) 비휘발성 메모리를 갖는 시스템에 대한 비정상 셧다운의 핸들링
CN104572489A (zh) 磨损均衡方法及装置
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
TWI452467B (zh) 記憶體系統及其控制方法
KR20210047359A (ko) 논리적-물리적 어드레스 변환 맵의 구역 기반 재구성
CN117931091B (zh) 一种异常掉电处理方法、装置、设备、介质及产品
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written
CN113342276A (zh) 一种日志保存方法、***、设备以及介质
CN114400037B (zh) Nand擦除方法、装置及可读存储介质
US11494112B2 (en) Storage device and accessing method for operation log thereof
US20220012180A1 (en) Memory system for meta data management and operating method of memory system
CN108509295B (zh) 存储器***的操作方法
CN113703671B (zh) 一种数据块擦除方法及相关装置
TW202418092A (zh) 資料儲存裝置與寫入緩存器管理方法
TW202418090A (zh) 資料儲存裝置與寫入緩存器管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant