将逻辑储存块动态地重新调整尺寸制造技术

技术编号:19963694 阅读:25 留言:0更新日期:2019-01-03 12:33
公开了对逻辑储存块动态地重新调整尺寸的设备、系统、方法以及计算机程序产品。非易失性储存器装置的控制器包含块组件,其确定非易失性储存器装置的可用擦除块的总数目。非易失性储存器装置的控制器包含尺寸模块,其确定作为可用擦除块的总数目的函数的多个逻辑块中的每一个中要包含的来自可用擦除块的擦除块的数目,使得逻辑块中的每一个的擦除块的数目彼此偏差小于预定偏差限制。非易失性储存器装置的控制器包含映射模块,其通过将确定的数目的擦除块分配到逻辑块中的每一个而产生非易失性储存器装置的逻辑块。

Dynamic resizing of logical storage blocks

Devices, systems, methods and computer program products for dynamically resizing logical storage blocks are disclosed. The controller of a non-volatile memory device includes a block component that determines the total number of erasable blocks available for the non-volatile memory device. The controller of the non-volatile memory device includes a size module that determines the number of erase blocks from the available erase blocks in each of the multiple logical blocks as a function of the total number of erasable blocks, so that the number of erase blocks in each logical block deviates from each other less than the predetermined deviation limit. The controller of a non-volatile memory device includes a mapping module that generates a logical block of a non-volatile memory device by allocating a determined number of erasure blocks to each of the logical blocks.

【技术实现步骤摘要】
将逻辑储存块动态地重新调整尺寸
在各种实施例中,本公开涉及一种储存器装置,并且更特别地涉及对逻辑储存块动态地重新调整尺寸。
技术介绍
储存器装置的擦除块可以逻辑上分组在一起以形成逻辑储存块。每个逻辑储存块中包含的擦除块的数目可以基于储存器装置中由于制造缺陷而存在的坏的块的数目而变化,并且可以随着擦除块变得不可使用而随时间调整,其可以使逻辑储存块的尺寸改变。
技术实现思路
呈现了设备以将逻辑储存块动态地重新调整尺寸。在一个实施例中,设备包含非易失性储存器装置的控制器。在一个实施例中,非易失性储存器装置的控制器包含块组件,其确定非易失性储存器装置的可用擦除块的总数目。在其它实施例中,非易失性储存器装置的控制器包含尺寸模块,其确定作为可用擦除块的总数目的函数的要包含在多个逻辑块中的每一个中的来自可用擦除块的擦除块的数目,使得擦除块的数目对于逻辑块中的每一个彼此偏差小于预定偏差限制。在某些实施例中,非易失性储存器装置的控制器包含映射模块,其通过将确定的数目的擦除块分配到逻辑块中的每一个来为非易失性储存器装置产生逻辑块。在另一实施例中,一种设备包含用于识别非易失性记录介质的要分配到多个虚拟块的擦除块池的构件。在一些实施例中,多个虚拟块中的每一个包含多个擦除块,多个擦除块逻辑地组合以形成非易失性记录介质的单个储存单元。在一个实施例中,设备包含用于为多个虚拟块中的每一个计算尺寸的构件,其中尺寸限定要分配到多个虚拟块中的每一个的擦除块的数目。在一个实施例中,设备包含用于将擦除块从擦除块池分配到虚拟块的构件,使得在每个虚拟块之间的尺寸上的变化小于百分之二十五。呈现了系统以将逻辑储存块动态地重新调整尺寸。在一个实施例中,系统包含非易失性存储器装置,其包含多个擦除块。在某些实施例中,非易失性存储器装置的控制器配置为进行操作以确定多个擦除块中的多少个可用于创建超级块。在一些实施例中,超级块是非易失性存储器装置的储存单元,其由多个擦除块的组合构成。在一个实施例中,非易失性存储器装置的控制器配置为进行操作以产生可使用擦除块到超级块的映射,使得映射到超级块中的每一个的可使用擦除块的数目以小于阈值尺寸变化。在一个实施例中,非易失性存储器装置的控制器配置为在确保映射到超级块中的每一个的可使用擦除块的数目变化小于阈值尺寸的时,进行操作以周期性地修改可使用擦除块到超级块的映射。附图说明以下参考附图中图示的具体实施例包含了更特定的描述。应理解,这些附图仅绘示了本公开的某些实施例,并且因此不认为限制其范围,通过使用附图以附加的特异性和细节描述了本公开,附图中:图1是图示包括储存器管理模块的系统的一个示例的示意性框图;图2是图示存储器元件的一个示例的示意性框图;图3是图示存储器元件的另一实施例的示意性框图;图4是图示储存器管理模块的一个示例的示意性框图;图5是图示储存器管理模块的另一实施例的示意性框图;图6是图示将逻辑储存块动态地重新调整尺寸的方法的一个示例的示意性流程图;图7是图示将逻辑储存块动态地重新调整尺寸的方法的其它实施例的示意性流程图;图8A是图示将逻辑储存块动态地重新调整尺寸的方法的另一实施例的示意性流程图;以及图8B是图示将逻辑储存块动态地重新调整尺寸的方法的其它实施例的示意性流程图。具体实现方式本公开的方面可以实现为设备、系统、方法,或计算机程序产品。相应地,本公开的方面可以采取完全硬件实施例、完全软件实施例(包含固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,其可以全部在本文中总体上称为“电路”、“模块”、“设备”或“系统”。此外,本公开的方面可应采取实现为储存计算机可读和/或可执行程序代码的一个或多个非暂时性计算机可读储存介质的计算机程序产品的形式。本说明书中所描述的许多功能性单元已经标记为模块,以便更特定地强调它们的实现方式独立性。例如,模块可以实现为包括定制VLSI电路或门阵列的硬件电路、诸如逻辑芯片、晶体管或其它分立式组件的现成半导体。模块还可以实现为诸如现场可编程门阵列、可编程阵列逻辑,可编程逻辑装置等的可编程硬件装置。模块还可以至少部分地实现为由各种类型的处理器执行的软件。作为示例,可执行代码的识别的模块可以包括计算机指令的一个或多个物理或逻辑块,其可以例如组织为对象、过程或功能。然而,识别的模块的可执行体不需物理地位于一起,而可以包括不同位置中储存的不同的指令,当其逻辑上被连结在一起时,包括模块并实现模块的所述目的。实际上,可执行代码的模块可以包含单个指令或许多指令,并且甚至可以分散在若干不同的代码段上、在不同的程序之间、跨过若干存储器装置等。在模块或模块的部分实现为软件的情况下,软件部分可以储存在一个或多个计算机可读和/或可执行储存介质上。可以采用一个或多个计算机可读储存介质的任意组合。计算机可读储存介质例如可以包含但不限于,电子的、磁性的、光学的、电磁的、红外的或半导体的系统、设备或装置,或前述的任意适当组合,但不包含传播的信号。在此文档的语境下,计算机可读和/或可执行储存介质可以为任意有形的和/或非暂时性介质,其可以含有或储存由指令执行系统、设备、处理器或装置使用或与之相关的程序。由于进行本公开的方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写,包含诸如Python、Java、Smalltalk、C++、C#、ObjectiveC等面向对象的编程语言,诸如“C”编程语言、脚本编程语言的常规程序的编程语言,和/或其它相似编程语言。程序代码可以部分地或完全地在用户的计算机中的一个或多个上和/或在远程计算机或数据网络之上的服务器上等执行。如本文中所使用的,组件包括有形的、物理的、非暂时性装置。例如,组件可以实现为硬件逻辑电路,包括定制VLSI电路、门阵列,或其它集成电路;现成半导体,诸如逻辑芯片、晶体管,或其它分立式装置;和/或其它机械或电力装置。组件还可以实现为可编程硬件装置,诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。组件可以包括一个或多个硅集成电路装置(例如,芯片、裸芯、裸芯平面、封装体)或其它分立式电力装置,通过印刷电路板(PCB)等的电线与一个或多个其它组件电通信。在某些实施例中,本文所描述的模块中的每一个可以替代地由组件实施或实现为组件。本说明书通篇对“一个示例”“实施例”或相似语言的参考是指关于该实施例描述的特定特征、结构或特性包含在本公开的至少一个实施例中。因此,短语“在一个示例中”、“在实施例中”以及相似语言在本说明书通篇可以但不一定全部指代相同的实施例,而是指“一个或多个但不是全部的实施例”,除非明确地另有指明。术语“包含”、“包括”、“具有”及其变体是指“包含但不限于”,除非明确地另有指明。项目的枚举列表不意味着任意或全部的项目相互地排斥和/或相互地包含,除非明确地另有指明。术语“一”、“一个”和“所述”也指代“一个或多个”,除非明确地另有指明。以下根据本公开的实施例参考方法、设备、系统,以及计算机程序产品的示意性流程图和/或示意性框图描述了本公开的方面。应当理解,示意性流程图和/或示意性框图的每个框,以及示意性流程图和/或示意性框图中的框的组合,可以通过计算机程序指令实现。可以向计算机的处理器或其它可编程数据处理设备等提供这些计算机程序指本文档来自技高网...

【技术保护点】
1.一种设备,包括:非易失性储存器装置的控制器,所述控制器包括:块组件,所述块组件配置为确定所述非易失性储存器装置的可用擦除块的总数目;尺寸组件,所述尺寸组件配置为确定,作为可用擦除块的总数目的函数的要包含在多个逻辑块中的每一个中的来自所述可用擦除块的擦除块的数目,所述擦除块的数目对于所述逻辑块中的每一个彼此偏差小于预定偏差限制;以及映射组件,所述映射组件配置为,通过将所述确定的数目的擦除块分配到所述逻辑块中的每一个而为所述非易失性储存器装置产生所述逻辑块。

【技术特征摘要】
2017.06.26 US 15/633,6081.一种设备,包括:非易失性储存器装置的控制器,所述控制器包括:块组件,所述块组件配置为确定所述非易失性储存器装置的可用擦除块的总数目;尺寸组件,所述尺寸组件配置为确定,作为可用擦除块的总数目的函数的要包含在多个逻辑块中的每一个中的来自所述可用擦除块的擦除块的数目,所述擦除块的数目对于所述逻辑块中的每一个彼此偏差小于预定偏差限制;以及映射组件,所述映射组件配置为,通过将所述确定的数目的擦除块分配到所述逻辑块中的每一个而为所述非易失性储存器装置产生所述逻辑块。2.根据权利要求1所述的设备,其中所述控制器还包括更新组件,所述更新组件配置为:跟踪与每个逻辑块相关联的刷新条件,所述刷新条件包括所述逻辑块的擦除块的编程/擦除循环计数、所述逻辑块的年龄以及所述逻辑块的擦除块的失效的位计数中的一个或多个;并且响应于确定以下项中的一个,解散所述逻辑块中包含的所述擦除块的逻辑分组,所述项包括:所述编程/擦除循环计数满足预定编程/擦除循环阈值;所述逻辑块的年龄满足所述逻辑块的年龄阈值;以及所述擦除块的所述失效的位计数满足失效的位计数阈值。3.根据权利要求2所述的设备,其中:所述块组件还配置为,响应于所述更新组件解散所述旧的逻辑块,确定用于包含在新的逻辑块中的作为候选的新的可用擦除块的总数目;所述尺寸组件还配置为,确定作为所述可用擦除块的总数目的函数的要包含在所述新的逻辑块中的每一个的来自所述可用擦除块的新的擦除块的数目,使得所述擦除块的数目对于所述新的逻辑块中的每一个偏差小于所述预定偏差限制;并且所述映射组件还配置为,通过将所述确定的新的擦除块的数目分配到所述新的逻辑块中的每一个而产生所述新的逻辑块。4.根据权利要求3所述的设备,其中所述尺寸组件还配置为:确定来自所述解散的逻辑块中的每一个的仍可使用的擦除块的数目;将来自所述解散的逻辑块中的每一个的仍可使用的擦除块的每个数目储存在队列中;并且对于每个新的逻辑块,将所述每个新的逻辑块中要包含的擦除块的数目设定为弹出所述队列的擦除块的下一数目。5.根据权利要求1所述的设备,其中所述控制器还包括储备组件,所述储备组件配置为产生擦除块的储备池,所述擦除块的储备池包括不被包含在逻辑块中的所述可用擦除块中的一个或多个。6.根据权利要求5所述的设备,其中所述储备组件还配置为,当产生所述逻辑块时,在每个逻辑块中分配来自所述擦除块池的所述擦除块中的至少一个。7.根据权利要求1所述的设备,其中所述映射组件还配置为,当产生所述逻辑块时,将所述可用擦除块中的每一个分配到逻辑块,使得不存在能够分配到逻辑块的所述可用擦除块而未分配的擦除块。8.根据权利要求1所述的设备,其中逻辑块由擦除块的虚拟分组构成,所述映射组件还配置为保持擦除块到所述擦除块分配到的逻辑块的映射,响应于产生新的逻辑块而更新所述映射。9.根据权利要求1所述的设备,其中所述映射组件还配置为作为所述擦除块中的每一个的年龄的函数来选择要分配到所述逻辑块的擦除块,具有较低年龄的擦除块在具有较高年龄的擦除块之前被选择分配到逻辑块。10.根据权利要求9所述的设备,其中擦除块的所述年龄被限定为所述擦除块被激活的总时间、自所述...

【专利技术属性】
技术研发人员:A班尼特S戈罗贝茨L帕克
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1