NAND闪存的垃圾回收方法及NAND闪存与流程

文档序号:18464390发布日期:2019-08-17 02:19阅读:440来源:国知局
NAND闪存的垃圾回收方法及NAND闪存与流程

本申请涉及存储器领域,尤其涉及一种nand闪存的垃圾回收方法及nand闪存。



背景技术:

nand闪存和传统闪存相比,是一种功耗更低、容量更大、重量更轻和性能更佳的产品。

nand因其结构,具有最小写入量。nand最小写入量为16kb,即如果写入的数据小于16kb,会以无效数据(dummydata)的形式补足16kb,一个16kb的数据为一个数据块。

因为最小写入量的影响,nand闪存中可能会有较多的dummydata存在,影响存储总量,因此需要回收dummydata占据的存储空间,此过程可以称为垃圾回收(garbagecollection,简称gc)。

现有的nand闪存的垃圾回收方法效率低,无法满足nand闪存的高速读/写需求。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种nand闪存的垃圾回收方法及nand闪存,能提高nand闪存的垃圾回收效率。

第一方面,本申请提供了一种nand闪存的垃圾回收方法,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;

所述nand闪存包括:

多个sram,每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,

控制器,用于控制所述sram对数据的读/写;

所述垃圾回收方法包括:

所述每个sram同时读取对应通道的待读取子数据块的有效数据。

可选的,所述每个sram同时读取对应通道的待读取子数据块的有效数据,包括:

所述控制器判断所述通道对应的当前待读取子数据块中是否为有效数据;

若当前待读取子数据块中为有效数据,则所述sram读取对应通道的当前待读取子数据块中的有效数据。

可选的,若当前待读取子数据块中为无效数据,则所述控制器判断对应通道的下一个待读取子数据块中的数据是否为有效数据;

若所述下一个待读取子数据块中的数据为有效数据,则读取下一个待读取子数据块中的有效数据。

可选的,所述每个sram在同一个回收周期内读取有效数据。

可选的,所述sram将读取到的有效数据存储在闲置数据块中。

可选的,所述待回收数据块中的有效数据被读取后,所述待回收数据块被清除,成为闲置数据块。

第二方面,提供了一种nand闪存,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;

所述nand闪存包括:

多个sram,每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,

控制器,用于控制所述sram对数据的读/写;

所述nand闪存中,所述每个sram同时读取对应通道的待读取子数据块的有效数据。

可选的,所述每个sram同时读取对应通道的待读取子数据块的有效数据,包括:

所述控制器判断所述通道对应的当前待读取子数据块中是否为有效数据;

若当前待读取子数据块中为有效数据,则所述sram读取对应通道的当前待读取子数据块中的有效数据。

可选的,若当前待读取子数据块中为无效数据,则所述控制器判断对应通道的下一个待读取子数据块中的数据是否为有效数据;

若所述下一个待读取子数据块中的数据为有效数据,则读取下一个待读取子数据块中的有效数据。

可选的,所述每个sram在同一个回收周期内读取有效数据。

本申请实施例提供的该方法,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;所述nand闪存包括:多个sram,每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,控制器,用于控制所述sram对数据的读/写;所述垃圾回收方法包括:所述每个sram同时读取对应通道的待读取子数据块的有效数据。本发明实施例中,nand闪存包括多个sram,待回收数据块也被分为多个待读取子数据块,所述每个sram同时读取对应通道的待读取子数据块的有效数据,不会有闲置的sarm,提高了sram的利用率,进一步提高了nand闪存的垃圾回收的效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的待回收数据块的示意图;

图2所示为本发明实施例的nand闪存的垃圾回收方法的示意图;

图3所示为本发明实施例的nand闪存的垃圾回收方法的示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

本发明实施例提供了一种nand闪存的垃圾回收方法,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;

所述nand闪存包括:

多个sram(staticrandom-accessmemo,静态随机存取存储器),每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,

控制器,用于控制所述sram对数据的读/写;

所述垃圾回收方法包括:

所述每个sram同时读取对应通道的待读取子数据块的有效数据。

本发明实施例的方法,简单说就是按照通道来读取有效数据,每个sram依次读取对应通道中的有效数据,而不需要按照待回收数据块来读取有效数据。如果以一个待回收数据块看成一“行”,而一个通道看成一“列”,那么本发明实施例的方式是按照“列”来读取数据。

本发明实施例中,nand闪存包括多个sram,待回收数据块也被分为多个待读取子数据块,所述每个sram同时读取对应通道的待读取子数据块的有效数据,多个sram同时读取数据,且多个sram都同时读取到有效数据,提高了sram的利用率,进一步提高了nand闪存的垃圾回收的效率。

本发明实施例中,所述每个sram同时读取对应通道的待读取子数据块的有效数据,包括:

所述控制器判断所述通道对应的当前待读取子数据块中是否为有效数据;

若当前待读取子数据块中为有效数据,则所述sram读取对应通道的当前待读取子数据块中的有效数据。

本发明实施例中,若当前待读取子数据块中为无效数据,则所述控制器判断对应通道的下一个待读取子数据块中的数据是否为有效数据;

若所述下一个待读取子数据块中的数据为有效数据,则读取下一个待读取子数据块中的有效数据。

本发明实施例中,所述每个sram在同一个回收周期内读取有效数据。

本发明实施例中,所述sram将读取到的有效数据存储在闲置数据块中。

本发明实施例中,所述待回收数据块中的有效数据被读取后,所述待回收数据块被清除,成为闲置数据块。

本发明实施例中,sram读取对应通道的当前待读取子数据块时,若子数据块中是无效数据,就读取对应通道的下一个待读取子数据块,每一个读取周期内,多个sram同时读取数据,且多个sram都同时读取到有效数据,可以提高sram的利用率,进一步提高nand闪存的垃圾回收效率。

下面以不同的应用场景更详细的说明本发明的实施方式。

图1所示为本发明实施例的待回收数据块的示意图,如图1所示,110、120和130分别为一个待回收数据块,每个待回收数据块分为四个待读取子数据块。

待回收数据块110分为111、112、113和114四个待读取子数据块;待回收数据块120分为121、122、123和124四个待读取子数据块;待回收数据块130分为131、132、133和134四个待读取子数据块。

每个待读取子数据块与一个通道相对应,不同待回收数据块的同一位置的待读取子数据块对应相同的通道。

待读取子数据块的位置是相对于待读回收数据块的数据头来说的,例如待读取子数据111相对于待回收数据块110是第一个待读取子数据块,112是110的第二个待读取子数据块,113是110的第三个待读取子数据块,114是110的第四个待读取子数据块;同理,待读取子数据121相对于待回收数据块120是第一个待读取子数据块,在此不再赘述。

待读取子数据块111、121、131对应同一个通道,如图1所示,对应的通道为ch0,待读取子数据块112、122、132对应同一个通道,如图1中的ch1,待读取子数据块113、123、133对应同一个通道,如图1中的ch2,待读取子数据块114、124、134对应同一个通道,如图1中的ch3。

通道是一个虚拟的概念,并不代表在nand闪存中存在的具体结构,可以是一种映射,或可以是一种地址映射等,在此不再赘述。

图2所示为本发明实施例的nand闪存的垃圾回收方法的示意图,如图2所示,所述nand闪存包括4个sram,以及控制器soc。

每一个sram与一个通道相对应,例如sram0与通道ch0对应,即sram1与通道ch1对应,即sram2与通道ch2对应,即sram3与通道ch3对应。

如图2所示,当前待回收数据块为200,ch0对应的待读取子数据块为201,ch1对应的待读取子数据块为202,ch2对应的待读取子数据块为203,ch3对应的待读取子数据块为204。

同理,待回收数据块如果为300,ch0对应的待读取子数据块为301,ch1对应的待读取子数据块为302,ch2对应的待读取子数据块为303,ch3对应的待读取子数据块为304。

本发明实施例中,一个sram与一个通道对应;对于一个待读取数据块,一个通道对应一个待读取子数据块,因此,对于一个待回收数据块,一个sram仅能读取其中一个待读取子数据块中的数据,例如sram0只能读取通道ch0对应的待读取子数据块201中的数据。但是一个sram可以读取一个通道对应的多个子数据块中的数据,例如通道ch0对应子数据块201和301,因此sram0可以读取子数据块201和301中的数据。

同理,sram1可以读取子数据块202和302中的数据。

图3所示为本发明实施例的nand闪存的垃圾回收方法的示意图,如图3所示,nand闪存有4个sram,分别为sram0、sram1、sram2和sram3,有四个通道,分别为ch0、ch1、ch2和ch3,有多个待回收数据块,分别为ce0、ce1、ce2、ce3……

本发明实施例中,一个待回收数据块是16kb,包括四个待读取子数据块,一个待读取子数据块是4kb,本发明实施例中,包括4个sram。在本发明其他实施例中,或随着科技的发展,一个nand闪存可以包括更多的sram,此时一个待回收数据块可以分为更多个待读取子数据块。

图3中,有效数据黑色填充方块表示,无效数据以空白方块表示。

本发明实施例的nand闪存的垃圾回收方法中,每个sram同时都读取带读取子数据块中的有效数据。

图3所示的应用场景中,垃圾回收的时候,在第一个回收周期内,sram0读取ch0-ce0中的有效数据,sram2读取ch2-ce0,sram3读取ch3-ce0。对sram1,本来应该读取ch0-ce1,但是ch0-ce1中为无效数据,因此sram1读取通道ch1-ce1。

sram0、sram1、sram2和sram3把读取到的有效数据存储在闲置数据块中。

第二个回收周期内,sram0读取ch0-ce1中的有效数据,sram1读取ch1-ce3中的有效数据,sram2读取ch2-ce1中的有效数据,sram3读取ch3-ce2中的有效数据。

同样的,sram0、sram1、sram2和sram3把读取到的有效数据存储在闲置数据块中。

在本发明实施例中,四个sram同时读取到四个待读取子数据块中的有效数据,而一个闲置数据块也包括四个闲置子数据块,因此一个回收周期后,就可以填满一个闲置数据块,进一步提高了垃圾回收的效率。

本发明实施例中,在两个回收周期内就读取完了三个待回收数据块中的有效数据,填满了两个闲置数据块,极大的提高了垃圾回收的效率。

本发明上述实施例中,sram按照回收周期来读取数据只是为了便于描述,在本发明的其他实施例中,或可以不存在“周期”这一时间概念,而是按照实际读/写速率进行读取。

本发明的实施例中,nand闪存中有多个sarm,多个sram同时读取数据,且多个sram都同时读取到有效数据,极大的提高了垃圾回收的效率。

如图3所示,一个待回收数据可以看成一“行”,一个通道可以看成一“列”,本发明实施例按“列”读取。

按“列”读取比按“行”读取的效率更高,如果按“行”读取,如图3所示的应用场景,前四个有效数据分别为ch0-ce0、ch0-ce2、ch0-ce3和ch0-ce1,但是对于通道ch0,sram一个回收周期只能读取一个数据,即sram0只能读取ch0-ce0,而ch0-ce1“被遮挡”,要等下一个回收周期才能被读取,而sram1在第一个回收周期内是闲置的。所以如果按“行”读取,第一个回收周期只有3个sram在工作。

本发明实施例的方法按“列”读取,因此前四个有效数据分别为ch0-ce0、ch1-ce1,ch0-ce2及ch0-ce3,在一个回收周期内,四个sarm都在读取数据,可以进一步提高nand闪存的垃圾回收效率。

和上述nand闪存的垃圾回收方法相对应,本发明实施例还提供了一种nand闪存,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;

所述nand闪存包括:

多个sram,每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,

控制器,用于控制所述sram对数据的读/写;

所述nand闪存中,所述每个sram同时读取对应通道的待读取子数据块的有效数据。

本发明实施例中,所述每个sram同时读取对应通道的待读取子数据块的有效数据,包括:

所述控制器判断所述通道对应的当前待读取子数据块中是否为有效数据;

若当前待读取子数据块中为有效数据,则所述sram读取对应通道的当前待读取子数据块中的有效数据。

本发明实施例中,若当前待读取子数据块中为无效数据,则所述控制器判断对应通道的下一个待读取子数据块中的数据是否为有效数据;

若所述下一个待读取子数据块中的数据为有效数据,则读取下一个待读取子数据块中的有效数据。

本发明实施例中,所述每个sram在同一个回收周期内读取有效数据。

本发明的实施例中,nand闪存中有多个sarm,多个sram同时读取数据,且多个sram都同时读取到有效数据,极大的提高了垃圾回收的效率。

本发明实施例提供了一种nand闪存的垃圾回收方法及nand闪存,所述nand闪存的待回收数据块分为多个待读取子数据块,每个待读取子数据块与一个通道相对应,每个待读取子数据块中存储着有效数据或无效数据,不同待回收数据块的同一位置的待读取子数据块对应相同的通道;所述nand闪存包括:多个sram,每个sram与一个所述通道相对应,用于读取对应通道的待读取子数据块的数据,控制器,用于控制所述sram对数据的读/写;所述垃圾回收方法包括:所述每个sram同时读取对应通道的待读取子数据块的有效数据。本发明实施例中,nand闪存包括多个sram,待回收数据块也被分为多个待读取子数据块,所述每个sram同时读取对应通道的待读取子数据块的有效数据,不会有闲置的sarm,提高了sram的利用率,进一步提高了nand闪存的垃圾回收的效率。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1