CN103914392A - 闪存的空块回收方法及装置 - Google Patents

闪存的空块回收方法及装置 Download PDF

Info

Publication number
CN103914392A
CN103914392A CN201410132252.XA CN201410132252A CN103914392A CN 103914392 A CN103914392 A CN 103914392A CN 201410132252 A CN201410132252 A CN 201410132252A CN 103914392 A CN103914392 A CN 103914392A
Authority
CN
China
Prior art keywords
empty
piece
flash memory
blocks
block
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.)
Granted
Application number
CN201410132252.XA
Other languages
English (en)
Other versions
CN103914392B (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.)
Hefei Zhicun Microelectronics Co., Ltd.
Original Assignee
SHENZHEN SILICONGO SEMICONDUCTOR 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 SHENZHEN SILICONGO SEMICONDUCTOR CO Ltd filed Critical SHENZHEN SILICONGO SEMICONDUCTOR CO Ltd
Priority to CN201410132252.XA priority Critical patent/CN103914392B/zh
Publication of CN103914392A publication Critical patent/CN103914392A/zh
Application granted granted Critical
Publication of CN103914392B publication Critical patent/CN103914392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种闪存的空块回收方法及装置,本发明实施例实时检测闪存是否处于空闲状态;在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收;进行完空块回收的算法区中缓存块的有效数据均被转存,且所述缓存块被回收成空块。相较于现有技术,本发明实施例在闪存的空闲时间回收算法区的空块,使得算法区能时刻保持足够的空块量以供写入数据,而不需要在接收到写命令时,为了能继续在写满的算法区中写入数据而不得不将算法区中的数据进行转存,因此,本发明实施例提高了闪存的写性能。

Description

闪存的空块回收方法及装置
技术领域
本发明涉及数据存储领域,尤其涉及闪存的空块回收方法及装置。
背景技术
闪存的物理块通常被划分成算法区和数据区,算法区负责新数据的写入,数据区负责接收并存储算法区转存过来的数据,数据区通常不进行新数据的写入。
现有技术中,当算法区中的数据存储量达到算法区数据存储量的存储阈值(即存满)时,即当算法区没有空块或者空页可以写入新数据时,此时,闪存如果接收到新数据的写入命令,则需要先把算法区中的数据转存到数据区并回收空块或者空页才能进行新数据的写入。也就是说,闪存在接收到新数据的写入命令时,如果算法区没有空块或者空页可以写入新数据,则闪存对该写入命令的响应速度会非常慢。因此,如何在算法区没有空块或者空页时,提高闪存的新数据写入速度已经成为一个亟待解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于闪存的空块回收方法及装置,旨在通过在闪存的空闲时间回收空块以提高闪存的写性能。
为实现上述目的,本发明提供的闪存的空块回收方法,包括以下步骤:
实时检测闪存是否处于空闲状态;
在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,则对所述算法区进行空块回收。
优选地,所述实时检测闪存是否处于空闲状态的步骤包括:
实时检测所述闪存是否有需要执行的命令;
在所述闪存没有需要执行的命令时,计算空闲时间;
在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
优选地,所述在闪存处于空闲状态时的步骤还包括:
判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收。
优选地,所述在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,则对所述算法区进行空块回收的步骤包括:
在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,在所述算法区的物理块中设置第一目标块,所述第一目标块为进行空块回收的对象;
将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块;
对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
优选地,所述在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收的步骤包括:
在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
本发明进一步提供的闪存的空块回收装置,所述装置包括:
检测模块,用于实时检测闪存是否处于空闲状态;
第一判断模块,用于在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
算法区回收模块,用于在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收。
优选地,所述检测模块包括:
检测单元,用于实时检测所述闪存是否有需要执行的命令;
计算单元,用于在所述闪存没有需要执行的命令时,计算空闲时间;
分析单元,用于预设时间阈值在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
优选地,所述装置包括:
第二判断模块,用于判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
数据区回收模块,用于在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,则对所述闪存的数据区进行空块回收。
优选地,所述算法区回收模块还包括:
第一设置单元,用于在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,在所述算法区的物理块中设置第一目标块,所述第一目标块为进行空块回收的对象;
第一转存单元,用于将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上;
第一插入单元,用于对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
优选地,所述数据区回收模块还包括:
获取物理块单元,用于在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
获取磨损值单元,用于获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
第二设置单元,用于根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
第二转存单元,用于将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
第二插入单元,用于对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
本发明实施例实时检测闪存是否处于空闲状态;在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收;相较于现有技术,本发明实施例在闪存的空闲时间回收所述算法区的空块,使得算法区能时刻保持足够的剩余存储量以供写入数据,而不需要在接收到写命令时,为了能继续在写满的算法区中写入数据而必须先将算法区中的数据进行转存,因此,本发明实施例提高了闪存的写性能。
附图说明
图1为本发明闪存的空块回收方法第一实施例的流程示意图;
图2为本发明闪存的空块回收方法第二实施例的流程示意图;
图3为图2闪存的空块回收方法中所述在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收的步骤的具体流程示意图;
图4为本发明闪存的空块回收方法第三实施例的流程示意图;
图5为本发明闪存的空块回收装置第一实施例的功能模块示意图;
图6为图5闪存的空块回收装置中检测模块的功能单元示意图
图7为本发明闪存的空块回收装置第二实施例的功能模块示意图;
图8为图7闪存的空块回收装置中数据区回收模块的功能单元示意图;
图9为本发明闪存的空块回收装置第三实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本领域技术人员可以理解,本发明闪存的空块回收方法及装置的下述实施例中,所述闪存中的物理块已至少被分为两个分区,分别为算法区和数据区,所述算法区负责新数据的写入,所述数据区负责接收并存储所述算法区搬移过来的数据,所述数据区不直接进行新数据的写入,上述至少具有所述算法区和所述数据区的闪存是现有的产品,本发明实施例对所述闪存的具体的分区方法不进行一一赘述。
本发明提供一种闪存的空块回收方法,参照图1,为所述方法的第一实施例,该闪存的空块回收方法包括以下步骤:
步骤S11,实时检测闪存是否处于空闲状态;
装置对闪存是否处于空闲状态进行实时检测,例如,装置可以是对所述闪存是否接收到需要执行的命令进行实时检测,若在预设时长内(如3分钟内),装置没有检测到所述闪存有需要执行的命令,则识别所述闪存处于空闲状态,若在预设时长内装置检测到了所述闪存有需要执行的命令,则识别所述闪存不处于空闲状态。
当装置检测到闪存处于空闲状态时,则执行步骤S12,当装置检测到闪存不处于空闲状态时,则装置停止进行实时检测的任务,所述闪存响应接收到的命令并执行相应任务。
步骤S12,在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
步骤S13,在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收。
在所述闪存处于空闲状态时,装置需要判断所述闪存的算法区是否需要进行空块回收,判断的依据是所述算法区的空块队列的空块数量是否低于第一预设空块数量。所述第一预设空块数量是所述算法区空块数量的较优值,即当所述算法区中空块数量大于或者等于所述第一预设空块数量时,所述算法区有足够的数据空间容纳新数据的写入且新数据的写入速度快、效率高,装置根据所述算法区中空块数量的历史数据设置所述第一预设空块数量,或者装置基于用户侧用户触发的设置指令设置所述第一预设空块数量。
在装置判断得到所述算法区的空块队列中的空块数量大于或者等于所述第一预设空块数量时,终止执行或者返回重复所述实时检测闪存是否处于空闲状态的步骤。在装置判断得到所述算法区的空块队列中的空块数量小于所述第一预设空块数量时,装置识别所述算法区需要进行空块回收以使得其空块数量达到所述第一预设空块数量,此时,装置随机选取物理块或者按照预设规则选取物理块作为需要被回收成空块的物理块,或者根据用户触发的选择指令选取物理块作为需要被回收成空块的物理块,将所述需要回收成空块的物理块上的有效数据转存至其他物理块上,然后将所述目标物理块进行擦除,并将擦除后的物理块插入所述算法区的所述空块队列中。
在本实施例一优选实施例中,在所述对所述数据区进行空块回收的步骤之后或者在所述对所述数据区进行空块回收的步骤之后,包括:更新闪存转换层的地址映射表。
本实施例实时检测闪存是否处于空闲状态;在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列中的空块数量是否低于第一预设空块数量;在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收;相较于现有技术,本发明实施例在闪存的空闲时间回收各分区的空块,使得算法区能时刻保持足够的剩余存储量以供写入数据,而不需要在接收到写命令时,为了能继续在写满的算法区中写入数据而将算法区中的数据进行转存,因此,本发明实施例提高了闪存的写性能。
请再次参照图1,如图1所示,本发明闪存的空块回收方法中,步骤S11,实时检测闪存是否处于空闲状态的步骤包括:
实时检测所述闪存是否有需要执行的命令;
在所述闪存没有需要执行的命令时,计算空闲时间;
预设时间阈值在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
装置实时检测所述闪存是否有需要执行的命令,在所述闪存有需要执行的命令时,装置则终止执行或者重复所述实时检测所述闪存是否有需要执行的命令的步骤,而闪存则响应该命令且执行该命令;在所述闪存没有需要执行的命令时,装置开始计算空闲时间,所述空闲时间是指在所述闪存没有需要执行的命令状态持续的时间,所述空闲时间的计算方法可以是直接通过计时的方法计算得到所述空闲时间,也可以是计算空闲周期的循环次数,将所述循环次数乘以完成一次所述空闲周期需要的时间即得所述空闲时间,还可以是直接将计算得到的所述循环次数作为所述空闲时间。例如,装置在所述闪存没有需要执行的命令时,每隔一个空闲周期(即1毫秒)记录一次循环次数,即每经过一个1毫秒,所述循环次数增加数目“1”,若计算得到所述循环次数为300次,那么所述空闲时间为3秒。或者,装置在所述闪存没有需要执行的命令时,反复执行所述实时检测闪存是否处于空闲状态的步骤,若装置设定执行一次所述实时检测闪存是否处于空闲状态的步骤为一个空闲周期,装置执行了100次所述实时检测闪存是否处于空闲状态的步骤,则计算得到所述循环次数为100次,将所述循环次数作为所述空闲时间,即所述空闲时间为100次循环周期。
在装置计算得到空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态,装置继续执行下一步骤;在装置计算得到空闲时间小于或等于所述预设时间阈值时,则检测出所述闪存没有处于空闲状态,装置终止执行或者重复所述实时检测所述闪存是否有需要执行的命令的步骤。所述预设时间阈值可以是装置对所述预设时间阈值的历史记录数据,由装置本身设定,或者,由装置根据用户侧的技术人员触发的设置指令,接收技术人员设置的上述预设时间阈值。例如,装置设置所述预设时间阈值为2秒,若装置计算得到的空闲时间大于2秒,则装置检测出所述闪存处于空闲状态,若装置计算得到的空闲时间小于或者等于2秒,则装置检测出所述闪存没有处于空闲状态。
本实施例中装置通过实时检测所述闪存是否有需要执行的命令来判断所述闪存是否处于空闲状态,这是因为闪存在执行完命令之后,所述算法区中的物理块通常写入了新数据或者进行了数据的转存,因此装置设定所述闪存在没有任何需要执行的命令时为空闲状态,且在所述闪存处于空闲状态时才执行下一步骤,使得装置在执行下一步骤的同时不影响闪存正常执行命令。
如图2所示,为本发明闪存的空块回收方法的第二实施例,本实施例在第一实施例的基础上,所述在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收的步骤之后包括:
步骤S14,判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
步骤S15,在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收。
在对所述算法区进行空块回收之后,装置判断所述闪存的数据区是否需要进行空块回收,判断的依据是所述数据区的空块队列的空块数量是否低于第二预设空块数量。所述第二预设空块数量是所述数据区空块数量的较优值,即当所述数据区中空块数量大于或者等于所述第二预设空块数量时,所述数据区有足够的数据空间容纳从所述算法区转存过来的数据,以确保对所述算法区的空块回收能够流畅的进行,装置根据所述数据区中空块数量的历史数据设置所述第二预设空块数量,或者装置基于用户侧用户触发的设置指令设置所述第二预设空块数量。
在装置判断得到所述数据区的空块队列中的空块数量大于或者等于所述第二预设空块数量时,装置识别所述数据区不需要进行空块回收,直接执行步骤S12;
步骤S12,在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量。
在装置判断得到所述数据区的空块队列中的空块数量小于所述第二预设空块数量时,装置识别所述数据区中空块数量不足而可能导致在对所述算法区进行空块回收时因所述数据区存储空间不足而停止执行空块回收或者对所述算法区执行空块回收不流畅等问题,因此装置需要对所述数据区进行空块回收以使得其空块数量达到所述第二预设空块数量,此时,装置随机选取物理块或者按照预设规则选取物理块作为需要被回收成空块的物理块,将所述需要回收成空块的物理块上的有效数据转存至其他物理块上,然后将所述目标物理块进行擦除,并将擦除后的物理块插入所述数据区的空块队列中。
本实施例通过判断所述数据区中的空块数量是否达到所述第二预设空块数量,从而确认所述数据区是否需要进行空块回收,所述数据区中空块的数量直接影响装置对所述算法区进行空块回收是否能正常进行,因此在对所述算法区进行空块回收之前增加判断所述数据区是否需要进行空块回收,以保证所述数据区中有足够的存储空间供所述算法区转存数据,从而使得装置对所述算法区的空块回收保持较高的效率。
如图3所示,图3为图2闪存的空块回收方法中所述在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收的步骤的具体流程示意图,在本实施例一优选实施例中,所述在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收的步骤包括:
步骤S151,在所述数据区的空块队列中的空块数量低于第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
在所述数据区的空块队列中的空块数量低于第二预设空块数量时,装置计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块,所述预设有效阈值可以是装置自行设定的也可以是装置根据用户发送的设定指令设定的。当物理块的有效页的数量低于所述预设有效阈值时,表示所述物理块剩余的存储量较少,获取这些快存满的物理块并对这些物理块进行优先处理,而对于剩余的存储量还较多的物理块留置继续接收转存的数据,就可以减少所述数据区中物理块的擦写次数,延长所述闪存的寿命,若计算得到所述数据区中各物理块的有效页的数量均高于预设有效阈值的物理块,则终止执行。
在本实施例一优选实施例中,在获取所述有效页的数量低于预设有效阈值的物理块之后,装置还可以进一步的根据需要选取出一定数量的物理块(如5个物理块)执行下一个步骤。进一步选取一定数量的物理块执行下一步骤的目的是防止用于执行下一个步骤的物理块过多,造成后续的步骤需要花费的时间过长,使得装置可能还没有完整的执行完一次空块回收,闪存已经不在空闲状态了,而此时装置就必须中断执行空块回收的步骤。
步骤S152,获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
装置通过读取所述有效页的数量低于预设有效阈值的物理块的信息表或者读取该物理块所在的所述数据区的区信息表获取该物理块的磨损值,所述磨损值是指物理块经多次擦写后其磨损程度的值,所述磨损值可以是一个量化数据也可以是一个可以体现各物理块磨损程度的差异的代码或者是其他任何适合的形式。
步骤S153,根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
装置在所述有效页的数量低于预设有效阈值的物理块中选取所述第二目标块,可以将所述有效页的数量低于预设有效阈值的物理块中磨损值最高的物理块设置为所述第二目标块作为进行空块回收的对象。
步骤S154,将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
装置将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上,所述第二预设粒度是指装置或者用户设定的转存所述有效数据的最小数据量。所述第二预设粒度越小,闪存就能更快更流畅的响应下一条命令,例如,若所述第二目标块为三层单元物理块(TLC物理块),而所述接收所述第二目标块转存的有效数据的所述算法区物理块为单层单元物理块(SLC物理块),那么可以将所述第二预设粒度设置为一个页。若所述第二目标块上没有所述有效数据,那么所述第二目标块没有需要转存的数据,则不执行此步骤,直接执行下一步骤。
步骤S155,对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
装置在完成所述第二目标块的有效数据的转存后,对所述第二目标块进行擦除,即当所述第二目标块上的有效数据被转存后,所述第二目标块上只剩下无效数据或者已经没有剩余数据,装置对所述第二目标块进行擦除后,所述第二目标块已经成为空块,将已成为空块的第二目标块插入所述数据区的空块队列中,此时,所述数据区的空块队列的空块数量增加,在装置下一次对所述算法区进行空块回收时,所述数据区有足够的空块以供转存数据,从而提高了所述算法区空块回收的效率。
如图4所示,为本发明闪存的空块回收方法的第三实施例,本实施例在第一实施例、第二实施例的基础上,所述在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收的步骤包括:
步骤S131,在所述算法区的空块队列中的空块数量低于第一预设空块数量时,在所述算法区的物理块中设置第一目标块,所述第一目标块为进行空块回收的对象;
在所述算法区的空块队列中的空块数量低于第一预设空块数量时,装置识别算法区中有数据存储的缓存物理块(缓存块),在所述有数据存储的缓存物理块中随机选取物理块或者按照预设规则在所述算法区的物理块中选取物理块作为第一目标块,或者根据用户触发的选择指令选取物理块作为第一目标块,所述第一目标块为进行空块回收的对象,即所述第一目标块为需要将其回收成空块的物理块。
步骤S132,将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上;
装置将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上,所述第一预设粒度是指装置或者用户设定的转存所述有效数据的最小数据量。所述第一预设粒度越小,闪存就能更快更流畅的响应下一条命令,例如,若所述第一目标块为单层单元物理块(SLC物理块),而所述接收所述第一目标块转存的有效数据的所述数据区物理块为三层单元物理块(TLC物理块),那么可以将所述第一预设粒度设置为三个页。若所述第一目标块上没有所述有效数据,那么所述第一目标块没有需要转存的数据,则不执行此步骤,直接执行下一步骤。
步骤S133,对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
装置在完成所述第一目标块的有效数据的转存后,对所述第一目标块进行擦除,即当所述第一目标块上的有效数据被转存后,所述第一目标块上只剩下无效数据或者已经没有剩余数据,装置对所述第一目标块进行擦除后,所述第一目标块已经成为空块,将已成为空块的第一目标块插入所述算法区的空块队列中,此时,所述算法区的空块队列的空块数量增加,在所述闪存执行下一次的写任务时,所述算法区有足够的空块以供写入,从而提高了所述闪存的写性能。
本发明进一步提供的一种闪存的空块回收装置,参照图5,为所述装置的第一实施例,该闪存的空块回收装置包括:
检测模块11,用于实时检测闪存是否处于空闲状态;
检测模块11对闪存是否处于空闲状态进行实时检测,例如,检测模块11可以是对所述闪存是否接收到需要执行的命令进行实时检测,若在预设时长内(如3分钟内),检测模块11没有检测到所述闪存有需要执行的命令,则识别所述闪存处于空闲状态,若在预设时长内检测模块11检测到了所述闪存有需要执行的命令,则识别所述闪存不处于空闲状态。当检测模块11检测到闪存处于空闲状态时,则执行步骤S12,当检测模块11检测到闪存不处于空闲状态时,则检测模块11停止进行实时检测的任务,所述闪存响应接收到的命令并执行相应任务。
第一判断模块12,用于在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
算法区回收模块13,用于在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收。
在所述闪存处于空闲状态时,第一判断模块12需要判断所述闪存的算法区是否需要进行空块回收,判断的依据是所述算法区的空块队列的空块数量是否低于第一预设空块数量。所述第一预设空块数量是所述算法区空块数量的较优值,即当所述算法区中空块数量大于或者等于所述第一预设空块数量时,所述算法区有足够的数据空间容纳新数据的写入且新数据的写入速度快、效率高,第一判断模块12根据所述算法区中空块数量的历史数据设置所述第一预设空块数量,或者第一判断模块12基于用户侧用户触发的设置指令设置所述第一预设空块数量。第一判断模块12在对所述闪存进行空块回收之前,对所述闪存的算法区和数据区是否需要进行空块回收进行判断有利于装置选定空块回收的对象,提高空块回收的效率。
在第一判断模块12判断得到所述算法区的空块队列中的空块数量大于或者等于所述第一预设空块数量时,终止执行或者返回检测模块11重复所述实时检测闪存是否处于空闲状态的步骤。
在第一判断模块12判断得到所述算法区的空块队列中的空块数量小于所述第一预设空块数量时,第一判断模块12识别所述算法区需要进行空块回收以使得其空块数量达到所述第一预设空块数量,此时,算法区回收模块13随机选取物理块或者按照预设规则选取物理块作为需要被回收成空块的物理块,或者根据用户触发的选择指令选取物理块作为需要被回收成空块的物理块,将所述需要回收成空块的物理块上的有效数据转存至其他物理块上,然后将所述目标物理块进行擦除,并将擦除后的物理块插入所述算法区的所述空块队列中。
在本实施例一优选实施例中,所述装置还包括:更新模块(图中未示出),用于更新闪存转换层的地址映射表。
本实施例检测模块11实时检测闪存是否处于空闲状态;在所述闪存处于空闲状态时,第一判断模块12判断所述闪存中算法区的空块队列中的空块数量是否低于第一预设空块数量;算法区回收模块13在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收;相较于现有技术,本发明实施例的装置在闪存的空闲时间回收各分区的空块,使得算法区能时刻保持足够的剩余存储量以供写入数据,而不需要在接收到写命令时,为了能继续在写满的算法区中写入数据而将算法区中的数据进行转存,因此,本发明实施例提高了闪存的写性能。
如图6所示,图6为图5闪存的空块回收装置中所述检测模块11的功能单元示意图。在本实施例一优选实施例中,所述检测模块11包括:
检测单元111,用于实时检测所述闪存是否有需要执行的命令;
计算单元112,用于在所述闪存没有需要执行的命令时,计算空闲时间;
分析单元113,用于预设时间阈值在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
检测单元111实时检测所述闪存是否有需要执行的命令,在所述闪存有需要执行的命令时,检测单元111则终止执行或者重复所述实时检测所述闪存是否有需要执行的命令的步骤,而闪存则响应该命令且执行该命令;在所述闪存没有需要执行的命令时,计算单元112开始计算空闲时间,所述空闲时间是指在所述闪存没有需要执行的命令的时间,所述空闲时间的计算方法可以是直接通过计时的方法计算得到所述空闲时间,也可以是计算空闲周期的循环次数,将所述循环次数乘以完成一次所述空闲周期需要的时间即得所述空闲时间,还可以是直接将计算得到的所述循环次数作为所述空闲时间。例如,计算单元112在所述闪存没有需要执行的命令时,每隔一个空闲周期(即1毫秒)记录一次循环次数,即每经过一个1毫秒,所述循环次数增加数目“1”,若计算得到所述循环次数为300次,那么所述空闲时间为3秒。或者,计算单元112在所述闪存没有需要执行的命令时,检测单元111反复执行所述实时检测闪存是否处于空闲状态的步骤,若计算单元112设定检测单元111执行一次所述实时检测闪存是否处于空闲状态的步骤为一个空闲周期,检测单元111执行了100次所述实时检测闪存是否处于空闲状态的步骤,则计算单元112计算得到所述循环次数为100次,将所述循环次数作为所述空闲时间,即所述空闲时间为100次循环周期。在计算单元112计算得到空闲时间大于预设时间阈值时,则分析单元113检测出所述闪存处于空闲状态,装置继续执行下一步骤;在计算单元112计算得到空闲循环次数小于或等于所述预设时间阈值时,则分析单元113检测出所述闪存没有处于空闲状态,分析单元113终止执行或者返回检测单元111重复所述实时检测所述闪存是否有需要执行的命令的步骤。所述预设时间阈值可以是预设时间阈值由分析单元113本身设定或者由用户侧的技术人员设置,接收技术人员设置的上述预设时间阈值。例如,计算单元112设置所述预设时间阈值为2秒,若计算单元112计算得到的空闲时间大于2秒,则分析单元113检测出所述闪存处于空闲状态,若计算单元112计算得到的空闲时间小于或者等于2秒,则分析单元113检测出所述闪存没有处于空闲状态。
本实施例中检测单元111通过实时检测所述闪存是否有需要执行的命令来判断所述闪存是否处于空闲状态,这是因为闪存在执行完命令之后,所述算法区中的物理块通常写入了新数据或者进行了数据的转存,因此检测模块11设定所述闪存在没有任何需要执行的命令时为空闲状态,且在所述闪存处于空闲状态时才执行下一步骤,使得装置在执行下一步骤的同时不影响闪存正常执行命令。
如图7所示,为本发明闪存的空块回收装置的第二实施例,本实施例在第一实施例的基础上,优选地,所述装置包括:
第二判断模块14,用于判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
数据区回收模块15,用于在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述数据区进行空块回收。
第二判断模块14判断所述闪存的数据区是否需要进行空块回收,判断的依据是所述数据区的空块队列的空块数量是否低于第二预设空块数量。所述第二预设空块数量是所述数据区空块数量的较优值,即当所述数据区中空块数量大于或者等于所述第二预设空块数量时,所述数据区有足够的数据空间容纳从所述算法区转存过来的数据,以确保对所述算法区的空块回收能够流畅的进行,第二判断模块14根据所述数据区中空块数量的历史数据设置所述第二预设空块数量,或者第二判断模块14基于用户侧用户触发的设置指令设置所述第二预设空块数量。
在第二判断模块14判断得到所述数据区的空块队列中的空块数量大于或者等于所述第二预设空块数量时,第二判断模块14识别所述数据区不需要进行空块回收,直接通过第一判断模块12执行步骤S12。
步骤S12,在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量。
在第二判断模块14判断得到所述数据区的空块队列中的空块数量小于所述第二预设空块数量时,第二判断模块14识别所述数据区中空块数量不足而可能导致在对所述算法区进行空块回收时因所述数据区存储空间不足而停止执行空块回收或者对所述算法区执行空块回收不流畅等问题,因此数据区回收模块15需要对所述数据区进行空块回收以使得其空块数量达到所述第二预设空块数量,此时,数据区回收模块15随机选取物理块或者按照预设规则选取物理块作为需要被回收成空块的物理块,将所述需要回收成空块的物理块上的有效数据转存至其他物理块上,然后将所述目标物理块进行擦除,并将擦除后的物理块插入所述数据区的空块队列中。
本实施例通过第二判断模块14判断所述数据区中的空块数量是否达到所述第二预设空块数量,从而确认所述所述数据区是否需要进行空块回收,所述数据区中空块的数量直接影响算法区回收模块13对所述算法区进行空块回收是否能正常进行,因此增加第二判断模块14判断所述数据区是否需要进行空块回收,以保证所述数据区中有足够的存储空间供所述算法区转存数据,从而使得算法区回收模块13对所述算法区的空块回收保持较高的效率。
如图8所示,图8为图7闪存的空块回收装置中所述数据区回收模块15的功能单元示意图,在本实施例一优选实施例中,所述数据区回收模块15包括:
获取物理块单元151,用于在所述数据区的空块队列中的空块数量低于第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
在所述数据区的空块队列中的空块数量低于第二预设空块数量时,获取物理块单元151计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块,所述预设有效阈值可以是获取物理块单元151自行设定的也可以是获取物理块单元151根据用户发送的设定指令设定的。当物理块的有效页的数量低于所述预设有效阈值时,表示所述物理块剩余的存储量较少,获取物理块单元151获取这些快存满的物理块并对这些物理块进行优先处理,而对于剩余的存储量还较多的物理块留置继续接收转存的数据,就可以减少所述数据区中物理块的擦写次数,延长所述闪存的寿命,若计算得到所述数据区中各物理块的有效页的数量均高于预设有效阈值的物理块,则终止执行。。
在本实施例一优选实施例中,获取物理块单元151在获取所述有效页的数量低于预设有效阈值的物理块之后,还可以进一步的根据需要选取出一定数量的物理块(如5个物理块)执行下一个步骤。进一步选取一定数量的物理块执行下一步骤的目的是防止用于执行下一个步骤的物理块过多,造成后续的步骤需要花费的时间过长,使得装置可能还没有完整的执行完一次空块回收,闪存已经不在空闲状态了,而此时装置就必须中断执行空块回收的步骤。
获取磨损值单元152,用于获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
获取磨损值单元152通过读取所述有效页的数量低于预设有效阈值的物理块的信息表或者读取该物理块所在的所述数据区的区信息表获取该物理块的磨损值,所述磨损值是指物理块经多次擦写后其磨损程度的值,所述磨损值可以是一个量化数据也可以是一个可以体现各物理块磨损程度的差异的代码或者是其他任何适合的形式。
第二设置单元153,用于根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
第二设置单元153在所述有效页的数量低于预设有效阈值的物理块中选取所述第二目标块,可以将所述有效页的数量低于预设有效阈值的物理块中磨损值最高的物理块设置为所述第二目标块作为进行空块回收的对象;
第二转存单元154,用于将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
第二转存单元154将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上,所述第二预设粒度是指装置或者用户设定的转存所述有效数据的最小数据量。所述第二预设粒度越小,闪存就能更快更流畅的响应下一条命令,例如,若所述第二目标块为三层单元物理块(TLC物理块),而所述接收所述第二目标块转存的有效数据的所述算法区物理块为单层单元物理块(SLC物理块),那么可以将所述第二预设粒度设置为一个页。若所述第二目标块上没有所述有效数据,那么所述第二目标块没有需要转存的数据,则不执行此步骤,直接执行下一步骤。
第二插入单元155,用于对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
在完成所述第二目标块的有效数据的转存后,第二插入单元155对所述第二目标块进行擦除,即当所述第二目标块上的有效数据被转存后,所述第二目标块上只剩下无效数据或者已经没有剩余数据,第二插入单元155对所述第二目标块进行擦除后,所述第二目标块已经成为空块,第二插入单元155再将已成为空块的第二目标块插入所述数据区的空块队列中,此时,所述数据区的空块队列的空块数量增加,在装置下一次对所述算法区进行空块回收时,所述数据区有足够的空块以供转存数据,从而提高了所述算法区空块回收的效率。
如图9所示,为本发明闪存的空块回收装置的第三实施例,本实施例在第一实施例、第二实施例的基础上,所述算法区回收模块13包括:
第一设置单元131,用于在所述算法区的空块队列中的空块数量低于第一预设空块数量时,所述第一目标块为进行空块回收的对象;
在所述算法区的空块队列中的空块数量低于第一预设空块数量时,第一设置单元131识别算法区中有数据存储的缓存物理块(缓存块),在所述有数据存储的缓存物理块中随机选取物理块或者按照预设规则在所述算法区的物理块中选取物理块作为第一目标块,或者根据用户触发的选择指令选取物理块作为第一目标块,所述第一目标块为进行空块回收的对象,即所述第一目标块为需要将其回收成空块的物理块。
第一转存单元132,用于将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上;
第一转存单元132将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上,所述第一预设粒度是指第一转存单元132或者用户设定的转存所述有效数据的最小数据量。所述第一预设粒度越小,闪存就能更快更流畅的响应下一条命令,例如,若所述第一目标块为单层单元物理块(SLC物理块),而所述接收所述第一目标块转存的有效数据的所述数据区物理块为三层单元物理块(TLC物理块),那么可以将所述第一预设粒度设置为三个页。若所述第一目标块上没有所述有效数据,那么所述第一目标块没有需要转存的数据,则不执行此步骤,直接执行下一步骤。
第一插入单元133,用于对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
第一转存单元132在完成所述第一目标块的有效数据的转存后,第一插入单元133对所述第一目标块进行擦除,即当所述第一目标块上的有效数据被转存后,所述第一目标块上只剩下无效数据或者已经没有剩余数据,第一插入单元133对所述第一目标块进行擦除后,所述第一目标块已经成为空块,第一插入单元133将已成为空块的第一目标块插入所述算法区的空块队列中,此时,所述算法区的空块队列的空块数量增加,在所述闪存执行下一次的写任务时,所述算法区有足够的空块以供写入,从而提高了所述闪存的写性能。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种闪存的空块回收方法,其特征在于,包括以下步骤:
实时检测闪存是否处于空闲状态;
在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,则对所述算法区进行空块回收。
2.如权利要求1所述的闪存的空块回收方法,其特征在于,所述实时检测闪存是否处于空闲状态的步骤包括:
实时检测所述闪存是否有需要执行的命令;
在所述闪存没有需要执行的命令时,计算空闲时间;
在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
3.如权利要求1或2所述的闪存的空块回收方法,其特征在于,所述在所述闪存处于空闲状态时的步骤还包括:
判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,则对所述数据区进行空块回收。
4.如权利要求1或2所述的闪存的空块回收方法,其特征在于,所述在所述算法区的空块队列中的空块数量低于第一预设空块数量时,则对所述算法区进行空块回收的步骤包括:
在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,在所述算法区的物理块中设置第一目标块,所述第一目标块为进行空块回收的对象;
将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上;
对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
5.如权利要求3所述的闪存的空块回收方法,其特征在于,所述在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,则对所述数据区进行空块回收的步骤包括:
在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
6.一种闪存的空块回收装置,其特征在于,所述装置包括:
检测模块,用于实时检测闪存是否处于空闲状态;
第一判断模块,用于在所述闪存处于空闲状态时,判断所述闪存中算法区的空块队列的空块数量是否低于第一预设空块数量;
算法区回收模块,用于在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,则对所述算法区进行空块回收。
7.如权利要求6所述的闪存的空块回收装置,其特征在于,所述检测模块包括:
检测单元,用于实时检测所述闪存是否有需要执行的命令;
计算单元,用于在所述闪存没有需要执行的命令时,计算空闲时间;
分析单元,用于预设时间阈值在计算得到的空闲时间大于预设时间阈值时,则检测出所述闪存处于空闲状态。
8.如权利要求6或7所述的闪存的空块回收装置,其特征在于,所述装置包括:
第二判断模块,用于在所述闪存处于空闲状态时,判断所述闪存中数据区的空块队列的空块数量是否低于第二预设空块数量;
数据区回收模块,用于在所述数据区的空块队列中的空块数量低于第二预设空块数量时,则对所述闪存的数据区进行空块回收。
9.如权利要求6或7所述的闪存的空块回收装置,其特征在于,所述算法区回收模块还包括:
第一设置单元,用于在所述算法区的空块队列中的空块数量低于所述第一预设空块数量时,在所述算法区的物理块中设置第一目标块,所述第一目标块为进行空块回收的对象;
第一转存单元,用于将所述第一目标块中的有效数据以第一预设粒度转存至所述数据区的物理块上;
第一插入单元,用于对完成所述有效数据转存后的所述第一目标块进行擦除,并将擦除后的所述第一目标块插入所述算法区的所述空块队列中。
10.如权利要求8所述的闪存的空块回收装置,其特征在于,所述数据区回收模块还包括:
获取物理块单元,用于在所述数据区的空块队列中的空块数量低于所述第二预设空块数量时,计算所述数据区中各物理块的有效页的数量,获取所述有效页的数量低于预设有效阈值的物理块;
获取磨损值单元,用于获取所述有效页的数量低于预设有效阈值的物理块的磨损值;
第二设置单元,用于根据所述磨损值在所述有效页的数量低于预设有效阈值的物理块中设置第二目标块,所述第二目标块为进行空块回收的对象;
第二转存单元,用于将所述第二目标块中的有效数据以第二预设粒度转存至所述算法区的物理块上;
第二插入单元,用于对完成所述有效数据转存后的所述第二目标块进行擦除,并将擦除后的所述第二目标块插入所述数据区的所述空块队列中。
CN201410132252.XA 2014-04-03 2014-04-03 闪存的空块回收方法及装置 Active CN103914392B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410132252.XA CN103914392B (zh) 2014-04-03 2014-04-03 闪存的空块回收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410132252.XA CN103914392B (zh) 2014-04-03 2014-04-03 闪存的空块回收方法及装置

Publications (2)

Publication Number Publication Date
CN103914392A true CN103914392A (zh) 2014-07-09
CN103914392B CN103914392B (zh) 2017-05-03

Family

ID=51040093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410132252.XA Active CN103914392B (zh) 2014-04-03 2014-04-03 闪存的空块回收方法及装置

Country Status (1)

Country Link
CN (1) CN103914392B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105404587A (zh) * 2014-09-15 2016-03-16 杭州华为数字技术有限公司 一种数据搬移方法及装置
CN105867834A (zh) * 2015-01-22 2016-08-17 深圳市硅格半导体有限公司 存储装置数据整理方法
CN106484761A (zh) * 2015-08-24 2017-03-08 Hgst荷兰公司 用于改进储存日志的方法和系统
CN107203337A (zh) * 2016-03-17 2017-09-26 三星电子株式会社 用户可配置的被动后台操作
CN108614779A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 用于NANDflash存储设备的数据处理方法、NANDflash存储设备
CN108614663A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 基于NAND flash的数据处理方法和装置
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN111177087A (zh) * 2019-12-27 2020-05-19 柏科数据技术(深圳)股份有限公司 一种用于灾备客户端的文件系统空块扫描技术
CN111949561A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储设备及其控制方法和控制装置
CN114281247A (zh) * 2021-11-29 2022-04-05 深圳三地一芯电子有限责任公司 一种基于混合介质的flash带宽分配方法及装置
CN114285894A (zh) * 2021-12-28 2022-04-05 浙江吉利控股集团有限公司 出行平台任务处理方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205289A1 (en) * 2003-04-11 2004-10-14 Sujaya Srinivasan Reclaiming blocks in a block-alterable memory
CN101777026A (zh) * 2009-01-09 2010-07-14 成都市华为赛门铁克科技有限公司 一种存储管理方法、硬盘及存储系统
US20110022778A1 (en) * 2009-07-24 2011-01-27 Lsi Corporation Garbage Collection for Solid State Disks
CN102147767A (zh) * 2011-04-26 2011-08-10 记忆科技(深圳)有限公司 固态硬盘垃圾收集参数动态调整方法及其系统
CN102521144A (zh) * 2011-12-22 2012-06-27 清华大学 一种闪存转换层系统
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205289A1 (en) * 2003-04-11 2004-10-14 Sujaya Srinivasan Reclaiming blocks in a block-alterable memory
CN101777026A (zh) * 2009-01-09 2010-07-14 成都市华为赛门铁克科技有限公司 一种存储管理方法、硬盘及存储系统
US20110022778A1 (en) * 2009-07-24 2011-01-27 Lsi Corporation Garbage Collection for Solid State Disks
CN102147767A (zh) * 2011-04-26 2011-08-10 记忆科技(深圳)有限公司 固态硬盘垃圾收集参数动态调整方法及其系统
CN102521144A (zh) * 2011-12-22 2012-06-27 清华大学 一种闪存转换层系统
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105404587B (zh) * 2014-09-15 2018-09-07 杭州华为数字技术有限公司 一种数据搬移方法及装置
CN105404587A (zh) * 2014-09-15 2016-03-16 杭州华为数字技术有限公司 一种数据搬移方法及装置
CN105867834A (zh) * 2015-01-22 2016-08-17 深圳市硅格半导体有限公司 存储装置数据整理方法
CN106484761A (zh) * 2015-08-24 2017-03-08 Hgst荷兰公司 用于改进储存日志的方法和系统
CN106484761B (zh) * 2015-08-24 2019-06-28 Hgst荷兰公司 用于改进储存日志的方法和系统
CN107203337B (zh) * 2016-03-17 2021-11-09 三星电子株式会社 用户可配置的被动后台操作
CN107203337A (zh) * 2016-03-17 2017-09-26 三星电子株式会社 用户可配置的被动后台操作
CN108614779A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 用于NANDflash存储设备的数据处理方法、NANDflash存储设备
CN108614663A (zh) * 2016-12-09 2018-10-02 北京京存技术有限公司 基于NAND flash的数据处理方法和装置
CN111949561B (zh) * 2019-05-17 2024-03-29 兆易创新科技集团股份有限公司 一种存储设备及其控制方法和控制装置
CN111949561A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储设备及其控制方法和控制装置
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN111177087A (zh) * 2019-12-27 2020-05-19 柏科数据技术(深圳)股份有限公司 一种用于灾备客户端的文件系统空块扫描技术
CN114281247A (zh) * 2021-11-29 2022-04-05 深圳三地一芯电子有限责任公司 一种基于混合介质的flash带宽分配方法及装置
CN114285894A (zh) * 2021-12-28 2022-04-05 浙江吉利控股集团有限公司 出行平台任务处理方法、装置、设备及介质
CN114285894B (zh) * 2021-12-28 2024-01-16 浙江吉利控股集团有限公司 出行平台任务处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN103914392B (zh) 2017-05-03

Similar Documents

Publication Publication Date Title
CN103914392A (zh) 闪存的空块回收方法及装置
CN107608908B (zh) 用于数据储存装置的磨损平均方法
EP2901286B1 (en) Techniques associated with a read and write window budget for a two level memory system
US8788778B1 (en) Garbage collection based on the inactivity level of stored data
CN102508785B (zh) 一种磨损均衡方法及装置
US10474573B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US8452937B2 (en) Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
US20190065365A1 (en) Memory device with dynamic storage mode control
US10990325B2 (en) Write control method, associated data storage device and controller thereof
CN103995784A (zh) 快闪存储器控制器与存储装置以及快闪存储器控制方法
CN101923518A (zh) 存储器系统、操作方法和数据加载的方法
CN108628543B (zh) 垃圾回收方法以及使用该方法的装置
US11221802B2 (en) Zone allocation for data storage device based on zone reset behavior
CN106445832A (zh) 闪存存储系统的地址映射方法及装置
CN104021089A (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
CN110865883A (zh) 一种大批量数据导入方法、装置、计算机设备及存储介质
CN109815166B (zh) 一种存储数据的动态回收处理方法及存储装置
CN115237820A (zh) 以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统
CN104932830A (zh) 信息处理方法及电子设备
CN103198861B (zh) 存储器储存装置、存储器控制器与控制方法
CN116610597A (zh) 一种存储器件及其垃圾回收的控制方法
CN109086006B (zh) 一种数据读取的方法以及相关装置
CN108717395B (zh) 一种降低动态块映射信息占用内存的方法及装置
CN111767007A (zh) 用于闪存的写入管理机制
CN104699574A (zh) 一种建立处理器Cache检查点的方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190619

Address after: 230000 Room 401, Block C, J1 Building, Phase II, Innovation Industrial Park, 2800 Innovation Avenue, Hefei High-tech Zone, Anhui Province

Patentee after: Hefei Zhicun Microelectronics Co., Ltd.

Address before: Units 05-2 and 06-08, Changhong Science and Technology Building, 18 Science and Technology South 12 Road, Nanshan District, Shenzhen City, Guangdong Province, 518057

Patentee before: Shenzhen SiliconGo Semiconductor Co., Ltd.