CN116303118A - 一种存储设备及其控制方法 - Google Patents
一种存储设备及其控制方法 Download PDFInfo
- Publication number
- CN116303118A CN116303118A CN202310559207.1A CN202310559207A CN116303118A CN 116303118 A CN116303118 A CN 116303118A CN 202310559207 A CN202310559207 A CN 202310559207A CN 116303118 A CN116303118 A CN 116303118A
- Authority
- CN
- China
- Prior art keywords
- storage
- source
- valid data
- memory
- super
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
Abstract
本发明公开了一种存储设备及其控制方法,其中存储设备至少包括:主控制器;闪存区,包括多个存储模块,且存储模块包括多个存储块,主控制器将闪存区划分为多个超级块,超级块包括多个存储模块中具有相同顺序编号的存储块;以及缓存区,包括垃圾回收单元;其中,当空白的存储块数量不足,主控制器在闪存区中标记出源超级块和目标超级块,通过垃圾回收单元将源超级块中的有效数据分多轮转移至目标超级块中,直到源超级块的有效数据个数清零,将源超级块转换为空白的超级块。本发明提供了一种存储设备及其控制方法,提升了存储设备的存储性能。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种存储设备及其控制方法。
背景技术
闪存的数据读写进程中,当闪存的空余存储块(block)不足时,需要对闪重新整理闪存中各个存储块的数据分布,从而整理出新的空余存储块,以保证闪存正常进行数据存储。这个整理存储空间的过程被称为垃圾回收(Garbage collection,GC)。
垃圾回收的过程是多个步骤的串行操作,在垃圾回收的串行操作进程中,后一个操作的执行依赖于前一操作的操作结果。因此垃圾回收的耗时较长,导致存储产品的性能会受到垃圾回收进程的制约。
发明内容
本发明的目的在于提供一种存储设备及其控制方法,以提升存储设备的存储性能。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种存储设备,至少包括:
主控制器;
闪存区,包括多个存储模块,且所述存储模块包括多个存储块,所述主控制器将所述闪存区划分为多个超级块,所述超级块包括多个所述存储模块中具有相同顺序编号的所述存储块;以及
缓存区,包括垃圾回收单元;
其中,当空白的所述存储块数量不足,所述主控制器在所述闪存区中标记出源超级块和目标超级块,通过所述垃圾回收单元将所述源超级块中的有效数据分多轮转移至所述目标超级块中,直到所述源超级块的有效数据个数清零,将所述源超级块转换为空白的所述超级块。
在本发明一实施例中,所述存储块包括多个存储单元,所述超级块包括多个超级页,所述超级页包括多个所述存储块中顺序编号相同的所述存储单元。
在本发明一实施例中,所述主控制器将正在转移的所述有效数据定义为本轮有效数据,将即将转移的所述有效数据定位为次轮有效数据,且在转移所述本轮有效数据时,所述主控制器依次扫描所述源超级块的源超级页,定位所述次轮有效数据。
在本发明一实施例中,所述垃圾回收单元具有缓存容量阈值,当扫描出的所述本轮有效数据的大小达到所述缓存容量阈值,所述主控制器记录终止扫描所述本轮有效数据的源超级页,并作为本轮扫描终止页。
在本发明一实施例中,所述主控制器根据所述本轮扫描终止页,设置开始扫描所述次轮有效数据的源超级页,并作为次轮扫描开始页。
在本发明一实施例中,当所述本轮扫描终止页的顺序编号为所述源超级页的最大顺序编号,所述次轮扫描开始页为具有初始顺序编号的所述源超级页。
在本发明一实施例中,当所述本轮扫描终止页的顺序编号小于所述源超级页的最大顺序编号,所述次轮扫描开始页为所述本轮扫描终止页的下一个所述源超级页。
在本发明一实施例中,当所述垃圾回收单元被所述本轮有效数据填满,所述主控制器将所述本轮有效数据转移至所述目标超级块中。
本发明提供了一种存储设备的控制方法,包括以下步骤:
提供一存储设备,所述存储设备包括主控制器、闪存区和缓存区,其中所述闪存区包括多个存储模块,且所述存储模块包括多个存储块;
根据多个所述存储模块中所述存储块的顺序编号,将具有相同顺序编号的所述存储块集合为超级块;
当空白的所述存储块数量不足,在所述闪存区中标记出源超级块和目标超级块;
所述缓存区包括垃圾回收单元,分多轮将所述源超级块中的有效数据转移至所述目标超级块中;以及
当所述源超级块的有效数据清零,将所述源超级块转换为空白的所述超级块。
在本发明一实施例中,设置所述闪存区的运行存储阈值,当所述源超级块的有效数据个数清零,且空白的所述存储块数量大于所述运行存储阈值,停止转移有效数据。
如上所述,本发明提供了一种存储设备及其控制方法,在存储设备存储空间不足时,可以对存储设备进行垃圾回收,从而整理出多个空白的存储块。并且根据本发明提供的存储设备及其控制方法,能够并行处理多个存储块的垃圾回收,并一次性释放出多个空白的存储块,垃圾回收效率高。根据本发明提供的存储设备及其控制方法,在将有效数据写入目标位置的同时,对后续的有效数据进行扫描和定位,从而提升串行操作的执行效率,提升垃圾回收的效率,减少存储设备资源占用并快速整理出可使用存储空间。并且,本发明提供的存储设备及其控制方法,方法稳定性好,实用性强。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储设备的结构示意图。
图2为本发明一实施例中超级块的结构示意图。
图3为本发明一实施例中控制方法的流程图。
图4为本发明一实施例中步骤S20的流程图。
图5为本发明一实施例中源超级块和目标超级块的结构示意图。
图6为本发明一实施例中步骤S30的流程图。
图7为本发明一实施例中步骤S40的流程图。
图8为本发明一实施例中步骤S40至步骤S60的流程图。
图9为一种电子设备的结构原理框图。
图10为一种计算机可读存储介质的结构原理框图。
图中:100、存储设备;101、闪存区;102、缓存区;200、存储模块;201、存储阵列;202、存储块;203、存储单元;300、超级块;301、超级页;400、源超级块;401、源超级页;500、目标超级块;501、目标超级页;600、处理器;700、主控制器;80、计算机指令;801、计算机可读存储介质。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明提供的存储设备100为非易失性存储设备,例如以NAND闪存作为存储介质的存储设备。在本实施例中,存储设备100包括多个存储阵列201,本发明不限定存储阵列201的数量。存储阵列201包括多个存储块202。其中存储块202可以是NAND闪存为存储介质的物理区块(block),且存储块202具有唯一的器件编码。其中存储块202包括多个存储单元203,存储单元203可以是物理区块下的物理页面(page)。对存储设备100写入数据时,可以将数据写入存储块202的存储单元203中。要将存储设备100中的数据擦除时,按照存储块202为单位,擦除存储设备100中的数据。在存储空间不足时,首先将对应存储块202进行数据擦除,接着再将数据写入存储单元203中。在本实施例中,存储设备100包括闪存区101和缓存区102。其中,存储模块200包括多个存储阵列201,以进行存储数据的读写和编辑。存储模块200可以是闪存芯片。本发明不限定存储模块200的数量。在本实施例中,在擦除对应存储块202的数据前,先将存储块202中的有效数据整理并搬移到另一存储块202中。
请参阅图1和图2所示,在本发明一实施例中,本发明提供的存储设备100电性连接于主控制器700。主控制器700电性连接于主机。存储设备100包括多个超级块300。超级块300包括多个顺序编号相同的存储块202。在本实施例中,主控制器700对存储模块200中的多个存储块202进行编号,例如将存储块a和存储块e编号为0,将存储块b和存储块f编号为1,将存储块c和存储块g编号为2,将存储块d和存储块h编号为3。其中,例如0、1、2和3等编号为存储块202的顺序编号,区别于存储块202的器件编号。每个存储块202都有唯一的器件编号。将顺序编号相同的存储块202集合为一个大的存储单位,即超级块300。且超级块300的顺序编号和存储块202的顺序编号一致。例如,当超级块300集合了顺序编号为0的存储块202,超级块300的顺序编号为0。以此类推。在本实施例中,可以以超级块300为单位,对存储设备100进行数据擦除,以同时对多个存储模块200进行数据擦除,提升数据处理效率。同样的,对存储块202中的存储单元203设置顺序编号。超级块300包括多个超级页301,其中超级页301包括多个不同存储块202的存储单元203,且超级页301中的存储单元203具有相同的顺序编号。
请参阅图1至图3所示,本发明提供了一种存储设备的控制方法,首先提供一存储设备100。在本实施例中,根据存储块202和存储单元203的器件排列顺序对存储块202和存储单元203进行编号。具体的,可以根据存储块202和存储单元203的器件编号挨个对存储块202和存储单元203进行排序,并标记存储块202和存储单元203的顺序编号。在本实施例中,将不同存储模块200中的存储块202按照排列顺序编号,并将顺序编号相同的存储块202集合,获得超级块300,且超级块300的顺序编号为所集合的存储块202的顺序编号。在本实施例中,将不同存储块202中的存储单元203按照排列顺序编号,将顺序编号相同的存储单元203集合,获得超级页301,且超级页301的顺序编号为所集合的存储单元203的顺序编号。
请参阅图1和图2所示,在本发明一实施例中,在存储设备100的存储进程中,按照存储设备100或主控制器700的时钟周期获取空白存储块202的数量,以判断是否要开启垃圾回收进程。在本实施例中,设置运行存储阈值,运行存储阈值用于衡量存储设备100中空白存储块202的数量。空白存储块202为未存储数据的存储块202。当空白的存储块202的数量小于等于运行存储阈值时,开启存储设备100的垃圾回收进程,以整理出新的空白的存储块202。直到空白的存储块202的数量大于运行存储阈值时,停止存储设备100的垃圾回收进程。在本发明的其他实施例中,也可以在空白的存储块202的数量小于运行存储阈值时,开启存储设备100的垃圾回收进程。并在空白的存储块202的数量大于运行存储阈值时,停止存储设备100的垃圾回收进程。
请参阅图1至图3所示,在本发明一实施例中,超级块300包括多个超级页301。在超级块300中,超级页301包括不同存储块202中顺序编号相同的存储单元203。在垃圾回收过程中,存储设备100以超级页301为单位进行数据写入,以超级块300为单位进行数据擦除。在本实施例中,当数据被写入存储单元203时,在存储数据存入的物理地址和存储数据的逻辑地址之间建立映射关系,并设置地址映射表。地址映射表首先被存储在缓存区102中,接着可以将缓存区102中的地址映射表转移到闪存区101的预设区域中存储,以避免掉电丢失。在读取闪存区101的数据时,首先在地址映射表中寻找对应该数据逻辑地址所对应的物理地址,接着根据物理地址从对应的存储单元203中读出数据。当删除数据时,可以删除该数据对应的地址映射表。在本实施例中,当存储单元203中的数据具有对应的地址映射表,则将存储单元203中的数据定义为有效数据。当存储单元203中的数据没有对应的地址映射表,则将存储单元203中的数据定义为无效数据。
请参阅图1至图5所示,在本发明一实施例中,当存储设备100开启垃圾回收进程,本发明提供的所述控制方法包括步骤S10至步骤S50。
步骤S10、根据超级块中有效数据的个数,获取并定位源超级块,其中源超级块包括多个源超级页,以及根据超级块的擦除次数,获取并定位目标超级块。
步骤S20、设置缓存容量阈值,并依次获取源超级页的有效数据。
步骤S30、当有效数据的数据体量达到缓存容量阈值,将源超级块的有效数据转移至目标超级块中。
步骤S40、在转移本轮有效数据的同时,对源超级块的有效数据进行下一轮扫描定位,获得次轮有效数据,直到次轮有效数据的数据体量达到缓存容量阈值。
步骤S50、在有效数据转移后,将剩余有效数据转移至目标超级块中。
请参阅图1至图5所示,在本发明一实施例中,在步骤S10中,依次获取超级块300中有效数据的个数,并将有效数据个数最少的超级块300设置为源超级块400。其中,根据地址映射表遍历存储设备100的存储数据,根据逻辑地址遍历对应的物理地址,若遍历的物理地址中具有对应的存储数据,则对应的存储数据为有效数据。在本实施例中,在对存储数据进行读写编辑时,可以记录存储块202的有效数据个数,将存储块202的有效数据个数作为存储块202的使用信息,并将存储块202的有效数据个数存储在缓存区102中。例如,要存储块202中的存储数据,则删除存储单元203对应的地址映射表,对应的,存储块202的有效数据个数减少。例如,对存储块202写入数据,则增加存储单元203对应的地址映射表,对应的,存储块202的有效数据个数增加。在步骤S10中,在缓存区102中获取每个存储块202的有效数据个数。其中,超级块300的有效数据个数为多个存储块202的有效数据个数之和。在步骤S10中,将有效数据个数最少的超级块300设置为源超级块400。在本实施例中,当有效数据个数最少的超级块300有多个,可以将其中任意一个超级块300设置为源超级块400。在本实施例中,源超级块400包括多个源超级页401。
请参阅图1至图5所示,在本发明一实施例中,在步骤S10中,将擦除次数最少的超级块300设置为目标超级块500。在本实施例中,在对存储数据进行读写编辑时,可以记录存储块202的擦除次数,将存储块202的擦除次数作为存储块202的使用信息并将存储块202的擦除次数存储在缓存区102中。其中,超级块300的擦除次数为多个存储块202的擦除次数之和。在本实施例中,当擦除次数最少的超级块300有多个,可以将其中任意一个超级块300设置为目标超级块500。在存储设备100中,擦除次数越少的存储块202存储稳定性越强,因此选用擦除次数最少的超级块300作为目标超级块500,能够提升数据存储的稳定性。在本实施例中,目标超级块500包括多个目标超级页501。
请参阅图1至图5所示,在本发明一实施例中,在步骤S20中,设置缓存容量阈值,依次获取源超级页401的有效数据。具体的,步骤S20包括步骤S21至步骤S26。
步骤S21、依次读取源超级页中每个存储单元的存储数据。
步骤S22、判断存储单元中是否具有有效数据。
步骤S23、当存储单元具有有效数据,将有效数据读取至缓存区中。
步骤S24、当存储单元中未存储有效数据,读取下一存储单元的存储数据。
步骤S25、判断有效数据的体量是否达到缓存容量阈值。
请参阅图1至图5所示,在本发明一实施例中,在步骤S21中,依次读取源超级页401中每个存储单元203的存储数据。在本实施例中,每次读取一个存储单元203的存储数据。在步骤S22中,判断存储单元203中是否具有有效数据。当存储单元203具有有效数据,执行步骤S23,将有效数据从缓存单元203中转移至缓存区102中。当存储单元203中没有有效数据,执行步骤S24,读取下一存储单元203的存储数据。在本实施例中,在源超级页401中,可以按照存储块202的排列顺序依次读取存储单元203的存储数据。例如,按照a、b、c至h的排列顺序,依次读取对应存储块202的存储单元203。在步骤S25中,设置缓存容量阈值,缓存容量阈值为缓存区102预留的垃圾回收区域,用于存储垃圾回收进程的转移数据。在步骤S25中,判断从源超级页401中读出的有效数据的体量是否达到缓存容量阈值。其中有效数据的体量为多个存储单元203的有效数据之和。当有效数据的体量达到缓存容量阈值,执行步骤S30,将有效数据转移至目标超级块500中,以避免数据发生丢失,并提升数据转移的效率和安全性。若有效数据的体量未达到缓存容量阈值,则执行步骤S24,继续读取下一存储单元203的存储数据。其中,执行步骤S24后,继续执行步骤S22。
请参阅图1至图6所示,在本发明一实施例中,在步骤S30中,当有效数据的体量达到缓存容量阈值,将有效数据转移至目标超级块500中。具体的,读出的有效数据被存储在缓存区102中,将缓存区102中的有效数据转移至目标超级块500中。在本实施例中,缓存区102包括垃圾回收单元1021,其中垃圾回收单元1021的大小对应着缓存容量阈值的数值。在本实施例中,缓存容量阈值为一个物理页面的大小。将一个物理页面大小的有效数据转移至目标超级页501的存储单元203中。其中,若当前存储单元203的容量不足一个物理页面,可以将有效数据继续转移至目标超级页501的下一个存储单元203,以此类推,直到将一个物理页面的有效数据转移完成。具体的,步骤S30包括步骤S31至步骤S35。
步骤S31、选取目标超级页中顺序编号为0的存储单元,作为编程起始页。
步骤S32、判断存储单元是否写满。
步骤S33、当存储单元写满,切换到下一个存储单元。
步骤S34、当存储单元未写满,对存储单元写入源超级块的有效数据。
步骤S35、判断源超级块的有效数据是否完成转移,若源超级块的有效数据未完成转移,继续对存储单元写入源超级块的有效数据。
请参阅图1至图6所示,在本发明一实施例中,在步骤S31中,选取目标超级块500中顺序编号为0的目标超级页501,选取目标超级页501中顺序编号为0的存储单元203,并将选取的存储单元203作为编程起始页。在步骤S32中,若编程起始页的存储余量已写满,则执行步骤S33,切换到下一个存储单元203,并判断下一个存储单元203的存储余量是否充足。若存储单元203的存储余量未写满,则执行步骤S34,对存储单元203写入源超级块400的有效数据。接着执行步骤S35,判断源超级块400的有效数据是否完成转移。若源超级块400的有效数据完成转移,则结束对当前的有效数据的转移。若源超级块400的有效数据未完成转移,则继续执行步骤S34。在本实施例中,当源超级块400中的存储单元203已被遍历,且有效数据体量不足一个物理页面时,直接将有效数据转移至缓存区102中,再将缓存区102的有效数据转移至目标超级块500中。当源超级块400的有效数据被全部转移至目标超级块500中,释放源超级块400中的无效数据,从而将源超级块400转换为空白的超级块300,一次性释放出多个存储块202。
请参阅图1至图5和图7所示,在本发明一实施例中,在步骤S40中,在转移本轮有效数据的同时,对源超级块400的有效数据进行下一轮扫描定位,获得次轮有效数据,直到次轮有效数据的数据体量达到缓存容量阈值。其中在步骤S30中,将本轮有效数据转移至缓垃圾回收单元1021中,接着将本轮有效数据转移至目标超级块500中。其中,步骤S40包括步骤S41至步骤S410。
步骤S41、获取本轮参与编程的源超级页的顺序编号i。
步骤S42、判断i是否等于imax,其中imax为顺序编号的最大值。
步骤S43、当i=imax,从顺序编号为0的源超级页开始下一轮有效数据的扫描。
步骤S44、当i≠imax,从顺序编号为i+1的源超级页开始下一轮有效数据的扫描。
步骤S45、判断选定的源超级页是否完成准备。
步骤S46、当选定的源超级页未完成准备,切换到下一个源超级页,并重新判断选定的源超级页是否完成准备。
步骤S47、当选定的源超级页完成准备,扫描选定的源超级页,获取次轮有效数据。
步骤S48、次轮有效数据的数据体量是否达到缓存容量阈值。
步骤S49、当次轮有效数据的数据体量达到缓存容量阈值,停止扫描。
步骤S410、当次轮有效数据的数据体量未达到缓存容量阈值,切换到下一个源超级页,并重新判断选定的源超级页是否完成准备。
请参阅图1至图5和图7所示,在本发明一实施例中,首先对源超级页401进行第一轮有效数据的扫描,当第一轮扫描到的有效数据的体量达到缓存容量阈值时,将有效数据写入目标超级块500中。在将第一轮扫描到的有效数据写入目标超级块500的同时,对源超级块400开始第二轮有效数据的扫描。在第一轮有效数据完成转移后,接着将第二轮有效数据也转移至目标超级块500中。以此类推,直到完成源超级块400中全部有效数据的扫描和转移。其中,在对源超级块400的有效数据的扫描进程中,首先从顺序编号为0的源超级页401开始扫描,直到完成对顺序编号为imax的源超级页401的扫描。其中,每个源超级页401包括多个存储单元203,且每个存储单元203的顺序编号相同,但每个存储单元203所属不同顺序编号的存储块202。因此,在对每个源超级页401进行扫描的进程中,首先从所属顺序编号为0的存储块202的存储单元203开始扫描,直到完成对所属顺序编号为imax的存储块202的存储单元203的扫描。
请参阅图1至图5和图7所示,在本发明一实施例中,以第二轮对有效数据的扫描为例说明步骤S40。在第二轮有效数据的扫描中,执行步骤S41,获取上一轮参与编程的源超级页401的顺序编号i。即获取第一轮参与编程的源超级页401的顺序编号i。在步骤S20中,在第一轮有效数据扫描中,当有效数据的体量达到缓存容量阈值,可以将有效数据转移至目标超级块500中。此时有效数据所在的存储单元203为参与编程的存储单元203。参与编程的存储单元203对应的源超级页401为参与编程的超级页301。例如,在第一轮有效数据的扫描中,有效数据在顺序编号为0、1、2、3和5的源超级页401中。此时上一轮参与编程的源超级页401的顺序编号i为例如5。在本实施例中,源超级页401的数量例如为100个,则源超级页401的最大顺序编号imax为例如100。在步骤S42中,i≠imax,执行步骤S44,对有效数据的扫描从顺序编号为6的源超级页401开始。
请参阅图1至图5和图7所示,在本发明一实施例中,在步骤S45中,判断顺序编号为6的源超级页401是否完成准备。具体的,在缓存区102中存储有与超级页301对应的运行信息。当源超级页401初始化完成时,缓存区102的运行信息中对应的准备标记置起。在步骤S45中,缓存区102的运行信息中对应的准备标记未置起时,执行步骤S46,切换到下一个顺序编号的源超级页401,并重新判断选定的源超级页401是否完成准备。在本实施例中,顺序编号为7的源超级页401若未完成准备,则继续切换到下一个源超级页401,直到切换后的源超级页401完成准备。在本实施例中,当下一个源超级页401完成准备,则执行步骤S47,扫描选定的源超级页401,获取有效数据。例如,顺序编号为7的源超级页401完成准备,则依次扫描顺序编号为7的源超级页401中的存储单元203。在步骤S48中,判断第二轮扫描出的有效数据的体量是否达到缓存容量阈值。若第二轮扫描出的有效数据的体量达到缓存容量阈值,则执行步骤S49,停止本轮有效数据的扫描。若第二轮扫描出的有效数据的体量未达到缓存容量阈值,则执行步骤S410,切换到下一个源超级页401,从而依次扫描顺序编号i+1的源超级页401、顺序编号i+2的源超级页401等等,直到第二轮有效数据扫描的数据体量达到缓存容量阈值,停止第二轮扫描,完成对剩余有效数据的扫描。在对第二轮有效数据进行转移时,继续进行第三轮有效数据扫描,以此类推,多轮扫描后完成对源超级块400中全部有效数据的扫描定位。
请参阅图1至图5、图7和图8所示,在本发明一实施例中,在步骤S50中,在有效数据转移后,将剩余有效数据转移至目标超级块500中。其中步骤S50包括步骤S51至步骤S53。
步骤S51、判断本轮有效数据是否完成转移。
步骤S52、当本轮有效数据未完成转移,等待转移次轮有效数据。
步骤S53、当本轮有效数据完成转移,将次轮有效数据转移至目标超级块中。
步骤S54、判断源超级块的有效数据是否完全转移,当源超级块的有效数据未完全转移,执行步骤S40,当源超级块的有效数据完全转移,执行步骤S60。
请参阅图1至图5、图7和图8所示,在本发明一实施例中,在步骤S51中,判断缓存区102中的有效数据是否完全转移至目标超级块500中。当缓存区102的缓存容量释放,则可以执行步骤S53,将次轮有效数据转移至目标超级块500中。具体的,执行步骤S20和步骤S30。首先将次轮有效数据转移至缓存区102中,再将缓存区102的次轮有效数据转移至目标超级块500中。当缓存区102的缓存容量还未完全释放,则先等待缓存区102的缓存容量完全释放。在本实施例中,次轮有效数据转移至目标超级块500中时,在源超级块400中,对应的存储单元203的有效数据个数减少。在本实施例中,不断循环执行步骤S40,扫描出有效数据,并将有效数据转移至目标超级块500中。在步骤S54中,在转移有效数据的同时,更新源超级块400的有效数据个数。当源超级块400的有效数据个数为0时,源超级块400的有效数据已全部转移。通过主控制器700对源超级块400执行擦除操作,释放出源超级块400中的多个存储块202。
请参阅图1至图5、图7和图8所示,在本发明一实施例中,本发明所述控制方法包括步骤S60,在步骤S54中,若源超级块400已完全转移,则根据存储设备100中空白存储块202的数量,继续或终止存储设备100的垃圾回收进程。具体的,当源超级块400已完全转移,若此时存储设备100中空白存储块202的数量小于等于运行存储阈值,则继续存储设备100的垃圾回收进程,获取新的源超级块400,并执行步骤S10至步骤S60。若此时存储设备100中空白存储块202的数量大于运行存储阈值,则终止存储设备100的垃圾回收进程。
请参阅图1和图2,以及图9所示,本发明还提出一种电子设备,所述电子设备包括处理器600、主控制器700和存储设备100,存储设备100包括多个存储模块200,可以将部分存储模块200或部分存储阵列201设置为固件模块104,并用于存储程序指令。在本实施例中,处理器600可以通过主控制器700调用并运行程序指令,实现上述的存储设备的控制方法。处理器600可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。存储设备100可能包含随机存取存储设备(Random Access Memory,简称RAM),也可能还包括非易失性存储设备(Non-Volatile Memory),例如至少一个磁盘存储设备。存储设备100也可以为随机存取存储设备(Random Access Memory,RAM)类型的内部存储设备,处理器600、存储设备100可以集成为一个或多个独立的电路或硬件,如专用集成电路(ApplicationSpecificIntegrated Circuit,ASIC)。需要说明的是,上述的存储设备100中的计算机程序可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
请参阅图10所示,本发明还提出一种计算机可读存储介质801,所述计算机可读存储介质801存储有计算机指令80,所述计算机指令80用于使所述计算机执行上述的存储设备的控制方法。计算机可读存储介质801可以是,电子介质、磁介质、光介质、电磁介质、红外介质或半导体系统或传播介质。计算机可读存储介质801还可以包括半导体或固态存储设备、磁带、可移动计算机磁盘、随机存取存储设备(RAM)、只读存储设备(ROM)、硬磁盘和光盘。光盘可以包括光盘-只读存储设备(CD-ROM)、光盘-读/写(CD-RW)和DVD。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种存储设备,其特征在于,至少包括:
主控制器;
闪存区,包括多个存储模块,且所述存储模块包括多个存储块,所述主控制器将所述闪存区划分为多个超级块,所述超级块包括多个所述存储模块中具有相同顺序编号的所述存储块;以及
缓存区,包括垃圾回收单元;
其中,当空白的所述存储块数量不足,所述主控制器在所述闪存区中标记出源超级块和目标超级块,通过所述垃圾回收单元将所述源超级块中的有效数据分多轮转移至所述目标超级块中,直到所述源超级块的有效数据个数清零,将所述源超级块转换为空白的所述超级块。
2.根据权利要求1所述的一种存储设备,其特征在于,所述存储块包括多个存储单元,所述超级块包括多个超级页,所述超级页包括多个所述存储块中顺序编号相同的所述存储单元。
3.根据权利要求1所述的一种存储设备,其特征在于,所述主控制器将正在转移的所述有效数据定义为本轮有效数据,将即将转移的所述有效数据定位为次轮有效数据,且在转移所述本轮有效数据时,所述主控制器依次扫描所述源超级块的源超级页,定位所述次轮有效数据。
4.根据权利要求3所述的一种存储设备,其特征在于,所述垃圾回收单元具有缓存容量阈值,当扫描出的所述本轮有效数据的大小达到所述缓存容量阈值,所述主控制器记录终止扫描所述本轮有效数据的源超级页,并作为本轮扫描终止页。
5.根据权利要求4所述的一种存储设备,其特征在于,所述主控制器根据所述本轮扫描终止页,设置开始扫描所述次轮有效数据的源超级页,并作为次轮扫描开始页。
6.根据权利要求5所述的一种存储设备,其特征在于,当所述本轮扫描终止页的顺序编号为所述源超级页的最大顺序编号,所述次轮扫描开始页为具有初始顺序编号的所述源超级页。
7.根据权利要求5所述的一种存储设备,其特征在于,当所述本轮扫描终止页的顺序编号小于所述源超级页的最大顺序编号,所述次轮扫描开始页为所述本轮扫描终止页的下一个所述源超级页。
8.根据权利要求3所述的一种存储设备,其特征在于,当所述垃圾回收单元被所述本轮有效数据填满,所述主控制器将所述本轮有效数据转移至所述目标超级块中。
9.一种存储设备的控制方法,其特征在于,包括以下步骤:
提供一存储设备,所述存储设备包括主控制器、闪存区和缓存区,其中所述闪存区包括多个存储模块,且所述存储模块包括多个存储块;
根据多个所述存储模块中所述存储块的顺序编号,将具有相同顺序编号的所述存储块集合为超级块;
当空白的所述存储块数量不足,在所述闪存区中标记出源超级块和目标超级块;
所述缓存区包括垃圾回收单元,分多轮将所述源超级块中的有效数据转移至所述目标超级块中;以及
当所述源超级块的有效数据清零,将所述源超级块转换为空白的所述超级块。
10.根据权利要求9所述的一种存储设备的控制方法,其特征在于,设置所述闪存区的运行存储阈值,当所述源超级块的有效数据个数清零,且空白的所述存储块数量大于所述运行存储阈值,停止转移有效数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559207.1A CN116303118B (zh) | 2023-05-18 | 2023-05-18 | 一种存储设备及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559207.1A CN116303118B (zh) | 2023-05-18 | 2023-05-18 | 一种存储设备及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116303118A true CN116303118A (zh) | 2023-06-23 |
CN116303118B CN116303118B (zh) | 2023-09-05 |
Family
ID=86781900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310559207.1A Active CN116303118B (zh) | 2023-05-18 | 2023-05-18 | 一种存储设备及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303118B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN117539796A (zh) * | 2024-01-09 | 2024-02-09 | 深圳宏芯宇电子股份有限公司 | 电子装置及缓冲存储器管理方法 |
CN117806572A (zh) * | 2024-03-01 | 2024-04-02 | 合肥康芯威存储技术有限公司 | 一种存储设备以及内存管理方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
TW201232262A (en) * | 2010-10-15 | 2012-08-01 | Arkologic Ltd | File system-aware solid-state storage management system |
US20190205043A1 (en) * | 2017-12-29 | 2019-07-04 | Micron Technology, Inc. | Managing partial superblocks in a nand device |
CN109992202A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备、其操作方法以及包括其的数据处理系统 |
CN110308867A (zh) * | 2018-03-20 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110543435A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
US20200004462A1 (en) * | 2018-06-27 | 2020-01-02 | SK Hynix Inc. | Memory system and method of operating the same |
US20200026645A1 (en) * | 2017-06-12 | 2020-01-23 | Western Digital Technologies, Inc. | System and Method of Data Writes and Mapping of Data for Multiple Sub-Drives |
CN111752852A (zh) * | 2019-03-28 | 2020-10-09 | 爱思开海力士有限公司 | 数据存储装置及数据存储装置的操作方法 |
CN111831584A (zh) * | 2019-04-23 | 2020-10-27 | 爱思开海力士有限公司 | 存储器系统、存储器控制器及操作存储器控制器的方法 |
CN112527201A (zh) * | 2020-12-11 | 2021-03-19 | 成都佰维存储科技有限公司 | Ssd坏块替换方法、装置、可读存储介质及电子设备 |
CN115291815A (zh) * | 2022-10-09 | 2022-11-04 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
CN115629719A (zh) * | 2022-12-19 | 2023-01-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
-
2023
- 2023-05-18 CN CN202310559207.1A patent/CN116303118B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
TW201232262A (en) * | 2010-10-15 | 2012-08-01 | Arkologic Ltd | File system-aware solid-state storage management system |
US20200026645A1 (en) * | 2017-06-12 | 2020-01-23 | Western Digital Technologies, Inc. | System and Method of Data Writes and Mapping of Data for Multiple Sub-Drives |
US20190205043A1 (en) * | 2017-12-29 | 2019-07-04 | Micron Technology, Inc. | Managing partial superblocks in a nand device |
CN109992202A (zh) * | 2018-01-03 | 2019-07-09 | 爱思开海力士有限公司 | 数据存储设备、其操作方法以及包括其的数据处理系统 |
CN110308867A (zh) * | 2018-03-20 | 2019-10-08 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
US20200004462A1 (en) * | 2018-06-27 | 2020-01-02 | SK Hynix Inc. | Memory system and method of operating the same |
CN111752852A (zh) * | 2019-03-28 | 2020-10-09 | 爱思开海力士有限公司 | 数据存储装置及数据存储装置的操作方法 |
CN111831584A (zh) * | 2019-04-23 | 2020-10-27 | 爱思开海力士有限公司 | 存储器系统、存储器控制器及操作存储器控制器的方法 |
CN110543435A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
CN112527201A (zh) * | 2020-12-11 | 2021-03-19 | 成都佰维存储科技有限公司 | Ssd坏块替换方法、装置、可读存储介质及电子设备 |
CN115291815A (zh) * | 2022-10-09 | 2022-11-04 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储系统 |
CN115629719A (zh) * | 2022-12-19 | 2023-01-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Non-Patent Citations (1)
Title |
---|
许浩;李向阳;刘泳;: "星载嵌入式文件系统技术研究及实现", 航天器工程, no. 05, pages 41 - 46 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN116909495B (zh) * | 2023-09-14 | 2023-12-15 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN117539796A (zh) * | 2024-01-09 | 2024-02-09 | 深圳宏芯宇电子股份有限公司 | 电子装置及缓冲存储器管理方法 |
CN117539796B (zh) * | 2024-01-09 | 2024-05-28 | 深圳宏芯宇电子股份有限公司 | 电子装置及缓冲存储器管理方法 |
CN117806572A (zh) * | 2024-03-01 | 2024-04-02 | 合肥康芯威存储技术有限公司 | 一种存储设备以及内存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116303118B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116303118B (zh) | 一种存储设备及其控制方法 | |
TWI653533B (zh) | 資料儲存裝置以及其操作方法 | |
JP5002201B2 (ja) | メモリシステム | |
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
US8732385B2 (en) | Non-volatile memory, controller controlling next access | |
CN100382049C (zh) | 用于闪速存储器的数据处理设备和方法 | |
US20170004077A1 (en) | Method of collecting a garbage block in a solid state disk | |
CN110489052B (zh) | 数据储存装置 | |
CN111475425A (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
CN103970669A (zh) | 用于加速在固态设备中的回收操作的物理到逻辑地址映射 | |
CN115291815B (zh) | 一种存储器及其控制方法与存储系统 | |
US7657697B2 (en) | Method of controlling a semiconductor memory device applied to a memory card | |
JP4921174B2 (ja) | フラッシュメモリのデータ書込み方法 | |
CN114968096A (zh) | 一种存储器的控制方法、存储器与存储系统 | |
TWI629590B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN105955669A (zh) | 一种提升固态硬盘写性能的方法 | |
CN116578246B (zh) | 一种存储设备及其控制方法 | |
CN1447243A (zh) | 快闪存储器中快速且能防止不正常断电的演算法及其控制系统 | |
CN111737165A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN113129943A (zh) | 基于闪存数据页存储结构的数据操作方法及固态硬盘 | |
CN1534509A (zh) | 具有快速且预防不当操作功效的快闪记忆体演算法及其控制系统 | |
CN111949558B (zh) | 一种垃圾数据回收方法、装置和存储设备 | |
CN111949559B (zh) | 一种数据写入方法、装置及存储设备 | |
CN112765048B (zh) | 一种固态硬盘垃圾回收方法、系统、电子设备及存储介质 | |
TWI640868B (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 |