一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据存储设备的垃圾回收处理方法及数据存储设备与流程

2023-01-15 10:36:01 来源:中国专利 TAG:


1.本发明属于存储技术领域,特别涉及一种数据存储设备的垃圾回收处理方法及数据存储设备。


背景技术:

2.固态硬盘(solid state disk,ssd)是一种基于永久性存储器的计算机存储设备,如闪存。其具有读写速度快,低功耗,无噪音,抗震动,低热量,体积小,工作范围大,广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
3.在固态硬盘的部分闪存块中,当闪存页中存储的数据到了期限,数据就会出现比特翻转,此时出现比特翻转的数据可纠正。当某一闪存页中的数据比特翻转过多或时间过长时,会出现不可纠正的错误。在对这些闪存块做垃圾回收时,当该闪存块内的有效数据过多时,会导致垃圾回收的效率极低,且消耗大量的时间。


技术实现要素:

4.本发明的目的在于提供一种数据存储设备的垃圾回收处理方法及数据存储设备,通过本发明提供的一种数据存储设备的垃圾回收处理方法及数据存储设备,提高垃圾回收的效率,并提高闪存块的寿命。
5.为解决上述技术问题,本发明是通过以下技术方案实现的:本发明提供一种数据存储设备的垃圾回收处理方法,至少包括以下步骤:获取闲置闪存块的数量,并判断所述闲置闪存块的数量是否小于第一阈值;当所述闲置闪存块的数量大于或等于所述第一阈值时,获取第一类型待回收闪存块和第二类型待回收闪存块,其中,所述第一类型待回收闪存块为由于数据存储时间达到期限而出现比特翻转,且需要垃圾回收的待回收闪存块,所述第二类型闪存块为由于闪存块上的数据成为无效数据,需要垃圾回收的待回收闪存块;判断所述第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比是否小于所述第二阈值;当所述第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比小于所述第二阈值时,进行垃圾回收;当所述第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比大于或等于第二阈值时,将所述第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中。
6.在本发明一实施例中,当所述闲置闪存块的数量小于所述第一阈值时,进行强制垃圾回收。
7.在本发明一实施例中,在获取所述第一类型待回收闪存块时,获取一个或多个所述第一类型待回收闪存块。
8.在本发明一实施例中,在获取所述第二类型待回收闪存块时,获取有效数据最少的一个或多个所述第二类型待回收闪存块。
9.在本发明一实施例中,所述备份闪存块为闪存页中存储单元为单层单元闪存存储模式的闪存块。
10.在本发明一实施例中,将所述第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中后,所述垃圾回收处理方法还包括以下步骤:建立一个物理到物理地址映射表,并在备份闪存块中存放被备份闪存块的物理地址。
11.在本发明一实施例中,所述备份闪存块的数量大于或等于2。
12.在本发明一实施例中,所述垃圾回收处理方法还包括以下步骤:当一个备份闪存块写满时,对所述备份闪存块对应的被备份闪存块做垃圾回收处理。
13.在本发明一实施例中,在对所述被备份闪存块做垃圾回收处理时,使用另一个备份闪存块对所述第一类型待回收闪存块中出现比特翻转的闪存页做备份。
14.本发明还提供一种数据存储设备,包括:缓存单元,存储有程序指令;控制单元,运行所述程序指令实现如上所述数据存储设备的数据写入方法。
15.如上所述本发明提供的一种数据存储设备的垃圾回收处理方法及数据存储设备,先判断垃圾回收的必要性,当闲置闪存块的数量过少时,进行强制垃圾回收。当闲置闪存块的数量充足时,若垃圾回收效率不高,则将出现比特翻转的待回收闪存块中的闪存页备份。进而增加垃圾回收的效率,并同时提高闪存块的寿命。
16.当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为一种数据存储设备结构示意图。
19.图2为存储单元结构示意图。
20.图3为一种闪存块链表结构示意图。
21.图4为一种数据存储设备的垃圾回收处理方法流程图。
22.图5为一种计算机可读存储介质的框图。
23.图6为一种电子设备的结构原理框图。
具体实施方式
24.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
25.请参阅图1所示,这里所描述的数据存储设备20包括用于控制包括闪存芯片的大
容量存储模块的新颖结构。在图1中以高度概述的形式示出了整个数据存储设备20。与这里的其它框图一样,图1所示的元件本质上是概念性的,它们示出了这些功能块之间的互相关系的性质,而不意在表示实际的物理电路级实施。
26.请参阅图1所示,本技术提出一种电子设备,电子设备包括主机10和数据存储设备20。其中,主机10和数据存储设备20可以被实现为单独的芯片,模块,或者设备,或者可以被包括在单一设备中。在本实施例中,数据存储设备20可以为集成的单一存储设备,然后被连接至主机10。然而,本公开不限于该示例。也就是说,在另一实施例中,主机10和数据存储设备20可以被集成到单一设备中。
27.请参阅图1所示,在本发明一实施例中,主机10例如由个人计算机、cpu核或者与网络连接的服务器等构成。用户在主机10的操作系统的应用层面对电子设备20发出请求,文件系统101将读写请求经底层驱动102转化为相应的符合协议的读写和其他指令数据,数据存储设备20通过接口收到指令数据后,经过内部计算和处理逻辑,执行用的指令数据,并向主机10反馈相应的答复。
28.请参阅图1所示,在本发明一实施例中,数据存储设备20是一种以半导体闪存作为介质的存储设备,例如为嵌入式多媒体存储卡(embedded multi media card,emmc)。且在本实施例中,数据存储设备20包括前端层21、中间层22和后端层23。其中,前端层21包括控制单元211和缓存单元212,且其中的缓存单元212例如为随机存取数据存储设备(random access memory,ram),中间层22例如为闪存转换层(flash translation layer,ftl),后端层23包括多个闪存块231。当数据存储设备20接收到主机10发送的指令数据后,经过数据的验证,将相关的数据先存在缓存单元212中,中间层22会为每个逻辑数据块分配一个闪存地址,当数据凑到一定数量后,中间层22便会发送写闪存请求给后端层23,后端层23根据指令数据请求,把缓存单元212中的数据写到对应的闪存块231中,或读取对应闪存块231中的数据。
29.请参阅图1所示,在本发明一实施例中,中间层22中包括地址转换单元222,可完成逻辑数据块到闪存物理空间的转换或者映射。同时,中间层22中还具有擦除无效数据的垃圾回收单元223,闪存块231不能覆盖写,随着用户数据的不断写入,闪存块231内会产生垃圾数据(无效数据),垃圾数据会占用闪存块231的空间,当闪存块231可用空间不够时,垃圾回收单元223需要做垃圾回收,即把若干个闪存块231上的有效数据搬出,写到某个新的闪存块231,然后把这些之前的闪存块231擦除,得到所述可用闪存块。除此之外,中间层22中还包括保证每个闪存块231均衡写入的磨损平衡单元208,以及实现坏块管理的坏块管理单元205。
30.请参阅图1和图2所示,在本发明一实施例中,在后端层23中,数据存储设备20的底层设置有多个通道(channel,ch),图2中以一个通道0作为实施例说明。且每个通道内部有多个并行的逻辑单元(logical unit,lu)。在本实施例中,每个通道中设置有两个逻辑单元,即逻辑单元0和逻辑单元1。在其他实施例中,每个通道中可设置有多个逻辑单元。每个逻辑单元中包括多个面(plane)、页面寄存器(page register)和缓存寄存器(cache register),其中,页面寄存器和缓存寄存器中存放将要写入到物理存储单元中去的或者刚从存储单元中读取出来的数据。在本实施例中,每个逻辑单元中设置有两个面,即面0及面1。在其他实施例中,每个逻辑单元中可设置有多个面。在每个面中,设置有一个页面寄存器
和一个缓存寄存器。在每个面中,设置有多个闪存块(block)231,每个闪存块231内设置有多个闪存页(page),每个闪存页中还包括多个存储器单元。在本实施例中,每个面中设置有例如990个闪存块,每个闪存块中设置有例如1152个闪存页。在本实施例中,每个存储器单元例如为一个浮栅晶体管。在数据实际存在的、存储器的地址被称为物理地址,控制单元211使用逻辑地址,其与物理地址对应。可利用中间层22来管理物理地址和逻辑地址。且可以以映射表的形式存储物理地址和逻辑地址。其中,闪存块231内的存储器单元数据块可以按照实际需求配置为不同的存储模式,存储器单元例如包括slc(单层单元闪存,single-level cell,1bit/cell)存储模式和xlc存储模式。其中,slc存储模式指的是闪存块231中的每个字符串单元(cell)只存放一个比特数据,且slc存储模式的存储器单元具有较高的擦除次数,例如为50000~100000次。xlc存储模式指的是闪存块231中的每个字符串单元(cell)存放多个比特数据,且xlc存储模式包括mlc(多层单元闪存,multi-level cell,2bit/cell)存储模式、tlc(三层单元闪存,trinary-level cell,3bit/cell)存储模式和qlc(四层单元闪存,quad-level cell,4bit/cell)存储模式,且xlc存储模式的存储器单元具有较低的擦除次数,例如为500~10000次。相对于xlc存储模式的存储器单元,slc存储模式的存储器单元的性能更加稳定。在存储数据时,将数据写入xlc存储模式的存储器单元中,将比较重要的数据存储在slc存储模式的存储器单元中。
31.请参阅图3所示,在本发明一实施例中,可按照闪存块类的用途对闪存块进行分类,并以链表的形式存储闪存块,形成闪存块链表230,防止断电丢失。在本技术中,将闪存块分为以xlc存储模式存储主机数据的闪存块链表、以slc存储模式存储主机数据的闪存块链表、存储逻辑地址到物理地址映射表的闪存块链表和闲置闪存块链表,且每个链表中的闪存块数量依据需求设置即可。其中,以xlc存储模式存储主机数据的闪存块链表和以slc存储模式存储主机数据的闪存块链表中的闪存块用于存储有主机写入的数据,存储逻辑地址到物理地址映射表的闪存块链表中的闪存块用于存储有逻辑地址到物理地址映射表,而闲置闪存块链表中的闪存块作为预留空间,用于在垃圾回收时,存储转移的有效数据。
32.请参阅图1至图4所示,在本发明一实施例中,提供一种数据存储设备的垃圾回收处理方法,该数据存储设备的垃圾回收处理方法可存储在缓存单元中,且控制单元运行程序指令,实现缓存单元中存储的数据存储设备的垃圾回收处理方法。所述数据存储设备的垃圾回收处理方法包括:s110、获取闲置闪存块的数量。
33.s111、判断闲置闪存块的数量是否小于第一阈值,当闲置闪存块的数量小于第一阈值时,则执行步骤s112,当闲置闪存块的数量大于或等于第一阈值时,则执行步骤s113。
34.s112、进行强制垃圾回收。
35.s113、获取由于出现比特翻转的第一类型待回收闪存块和存在无效数据的第二类型待回收闪存块。
36.s114、判断第一类型待回收闪存块和第二类型待回收闪存块中的有效数据占比是否小于第二阈值,若第一类型待回收闪存块和第二类型待回收闪存块中的有效数据占比小于第二阈值,执行步骤s115,若第一类型待回收闪存块和第二类型待回收闪存块中的有效数据占比大于或等于小于第二阈值,执行步骤s116。
37.s115、进行垃圾回收。
38.s116、将第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中。
39.请参阅图4所示,在本发明一实施例中,本技术提供的垃圾回收处理方法,在步骤s111至步骤s112中,先判断闲置闪存块的数量。此时,可查看闲置闪存块中闪存块的数量,获取闲置闪存块的数量。当闲置闪存块的数量小于第一阈值时,则表示可用的闲置闪存块的数量过少,必须立即进行强制垃圾回收。此时,可挑选闪存块中无效数据较多的闪存块做垃圾回收,以释放更多的闪存块作为闲置闪存块。或者挑选出现比特翻转的闪存块做垃圾回收,以释放更多的闪存块作为闲置闪存块。其中,第一阈值的数量可依据数据存储设备的工作状态灵活设置。在本实施例中,第一阈值例如为4~10,具体例如为4。即当闲置闪存块的数量小于4时,进行强制垃圾回收,以避免在做垃圾回收时,无闲置闪存块使用。
40.请参阅图4所示,在本发明一实施例中,如步骤s113至s116所示,在数据存储设备中闲置闪存块数量超过第一阈值时,并不需要进行强制垃圾回收。此时,在进行垃圾回收时,不仅需要考虑进行垃圾回收的类型,还需要考虑垃圾回收的效率。当垃圾回收的效率过低时,可暂时不进行垃圾回收。在本技术中,例如以待回收闪存块中有效数据的占比衡量垃圾回收的效率,待回收闪存块中有效数据的占比量越大,垃圾回收的效率越低,待回收闪存块中有效数据的占比量越小,垃圾回收的效率越高。待回收闪存块的数量为例如5个,且每个待回收闪存块中的有效数据占比量为20%,则在垃圾回收后,以一个闪存块存储5个待回收闪存块中的有效数据,相当于释放出4个闲置闪存块。此时,垃圾回收的效率为80%。故待回收闪存块中的有效数据的占比量越小,垃圾回收的效率越高。
41.请参阅图4所示,在本发明一实施例中,在数据存储设备中,存在两种类型的待回收闪存块。一些待回收闪存页是由于的数据的存储时间到达了期限,数据就会发生比特翻转,此时,数据可修复。但是当闪存页中的数据比特翻转过多或时间过长时,会出现不可纠正的错误,故需要对出现比特翻转的闪存块进行垃圾回收。在本技术中,将由于数据存储时间达到期限而出现比特翻转,且需要垃圾回收的待回收闪存块定义为第一类型待回收闪存块。而由于主机对数据存储设备中的闪存块进行重复写、擦除或进行无效后,使得闪存块上的数据成为无效数据时,也需要对无效数据过多、有效数据过少的闪存块进行垃圾回收。并将这种由于闪存块上的数据成为无效数据,需要垃圾回收的待回收闪存块定义为第二类型待回收闪存块。
42.请参阅图4所示,在本发明一实施例中,在步骤s113至步骤s116中,在进行垃圾回收时,还需要提高垃圾回收的效率。若垃圾回收效率过低,则每次垃圾回收时释放的闪存空间过小,不仅影响主机的速度,还会影响闪存块的寿命。
43.请参阅图4所示,在本发明一实施例中,每次进行垃圾回收时,会对多个闪存块进行垃圾回收。且每次进行垃圾回收时,对回收的第一类型待回收闪存块和第二类型待回收闪存块的数量不多做限制,实现第一类型待回闪存块和第二类型待回收闪存块的垃圾回收即可。在本实施例中。在每次行垃圾回收时,对例如5个闪存块进行垃圾回收,且第一类型待回收闪存块的数量例如为1,第二类型待回收闪存块的数量例如为4。且每次进行垃圾回收时,出现第一类型待回收闪存块即判断是否能够回收,回收的第二类型待回收闪存块是有效数据最少,无效数据最多的一个或多个闪存块。
44.请参阅图4所示,在本发明一实施例中,在步骤s114中,第二阈值可依据需求设定,
为例如10%~40%。在本实施例中,第二阈值为例如20%。即当第一类型待回收闪存块和第二类型待回收闪存块中的有效数据占比小于20%时,进行垃圾回收。即当回收1个第一类型待回收闪存块和4个第二类型待回收闪存块时,第一类型待回收闪存块和第二类型待回收闪存块上的有效数据的数量小于一个闪存块存储的数据量。而当第一类型待回收闪存块和第二类型待回收闪存块中的有效数据占比大于或等于20%时,将第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中。
45.请参阅图4所示,在本发明一实施例中,由于存储单元为xlc存储模式的闪存页比存储单元为slc存储模式的闪存页更易出现由于存储时间的到达期限而出现比特翻转,故备份闪存块为具有slc存储模式闪存页的闪存块,即闪存页中存储单元为单层单元闪存存储模式的闪存块。
46.请参阅图4所示,在本发明一实施例中,在将第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中后,建立一个物理地址到物理地址(p2p)映射表,并保存在闪存块中。备份闪存块中存放有物理地址到物理地址映射表所在闪存块的物理地址。备份闪存块中存放被备份闪存块的物理地址,且多个备份闪存块以链表的形式存储,例如为备份闪存块链表。当需要读取相关数据时,可先通过逻辑地址找到物理地址,并查看物理地址所在的闪存块是否在备份闪存块链表中。若不存在备份闪存块链表中,则直接读该物理地址中保存的数据。若存在备份闪存块链表中,则在物理地址到物理地址映射表中查找该物理地址,当查找到该物理地址,则查找该物理地址对应物理地址中保存的数据,若未查找到该物理地址,则直接读取该物理地址中保存的数据。
47.请参阅图4所示,本技术对备份闪存块的数量不多作限定,但备份闪存块的数量至少为2个,即备份闪存块的数量等于或大于2。在进行垃圾回收处理的过程中,当一个备份闪存块写满时,对该备份闪存块对应的被备份闪存块做垃圾回收处理,并同时对该备份闪存块做垃圾回收处理。且在对被备份闪存块做垃圾回收处理时,使用另一备份闪存块对第一类型待回收闪存块中出现比特翻转的闪存页做备份。当一个备份闪存块写满时,说明该备份闪存块中的数据被保存了两份,若不作垃圾回收处理,则过多的备份数据会导致闪存资源的浪费。当对备份闪存块做垃圾回收处理后,该备份闪存块可用于下一次的备份。故至少需要2个备份闪存块。
48.请参阅图4所示,在将第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中后,数据存储设备会持续工作。由于主机对数据存储设备中的闪存块进行重复写、擦除或进行无效后,使得第一类型待回收闪存块和第二类型待回收闪存块上的有效数据占比量越来越少。而垃圾回收的处理方法在一直执行,当第二类型待回收闪存块上的有效数据占比量小于第二阈值之后,再对第一类型待回收闪存块和第二类型回收闪存块进行垃圾回收处理。
49.请参阅图5所示,本实施例还提出一种计算机可读存储介质3,所述计算机可读存储介质3存储有计算机指令30,所述计算机指令30用于使用所述数据存储设备的垃圾回收处理方法。计算机可读存储介质3可以是,电子介质、磁介质、光介质、电磁介质、红外介质或半导体系统或传播介质。计算机可读存储介质3还可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘。光盘可以包括光盘-只读存储器(cd-rom)、光盘-读/写(cd-rw)和dvd。
50.请参阅图6所示,本发明还提供一种电子设备,包括处理器40和存储器50,存储器50存储有程序指令,处理器40运行程序指令实现上述的一种数据存储设备的垃圾回收处理方法。处理器40可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;存储器50可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器50也可以为随机存取存储器(random access memory,ram)类型的内部存储器,处理器40、存储器50可以集成为一个或多个独立的电路或硬件,如:专用集成电路(application specificintegrated circuit,asic)。需要说明的是,存储器50中的计算机程序可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
51.本发明提供的一种数据存储设备的垃圾回收处理方法,先获取闲置闪存块的数量,并判断闲置闪存块的数量是否小于第一阈值。当闲置闪存块的数量小于第一阈值时,进行强制垃圾回收,保证闪存的稳定性。当闲置闪存块的数量大于或等于第一阈值时,获取第一类型待回收闪存块和第二类型待回收闪存块,并判断第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比是否小于第二阈值;当第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比小于第二阈值时,进行垃圾回收。当第一类型待回收闪存块和第二类型待回收闪存块中有效数据的占比大于或等于第二阈值时,将第一类型待回收闪存块中出现比特翻转的闪存页中的数据复制至备份闪存块中,提高垃圾回收的效率。
52.以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献