CN112115071A - 适用于用户装置存取的垃圾收集 - Google Patents
适用于用户装置存取的垃圾收集 Download PDFInfo
- Publication number
- CN112115071A CN112115071A CN202010564696.6A CN202010564696A CN112115071A CN 112115071 A CN112115071 A CN 112115071A CN 202010564696 A CN202010564696 A CN 202010564696A CN 112115071 A CN112115071 A CN 112115071A
- Authority
- CN
- China
- Prior art keywords
- memory
- count
- idle
- host
- memory device
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1659—Cell access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及适用于用户装置存取的垃圾收集。论述了用于针对主机存取存储器装置的模式调适所述存储器装置中的垃圾收集GC的系统和方法。所述主机存取模式可以由所述装置处于不含活跃主机存取的闲置状态的频繁程度来表示。示例性存储器装置包含存储器控制器,用于在指定时间窗口期间追踪闲置周期计数,并且用于根据所述闲置周期计数调节由GC操作释放的存储器空间的量。所述存储器控制器也可以根据在所述指定时间窗口期间的所述闲置周期计数在单层级单元SLC高速缓冲存储器与多层级单元MLC存储装置之间动态地重新分配存储器单元的一部分。
Description
技术领域
本发明大体上涉及存储器装置,且更确切地说涉及存储器装置中的垃圾收集操作。
背景技术
通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。除其它之外,易失性存储器需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)。除其它之外,非易失性存储器可以当不被供电时保持所存储的数据,且包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、磁阻式随机存取存储器(MRAM)或3D XPointTM存储器。
快闪存储器被用作广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低电力消耗的单晶体管浮动栅极或电荷阱存储器单元的一或多个群组。两种常见类型的快闪存储器阵列架构包含NAND和NOR架构,所述架构以每一者的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置在矩阵中。在实例中,阵列的一行中的每个浮动栅极存储器单元的栅极耦合到存取线(例如,字线)。在NOR架构中,阵列的一列中的每个存储器单元的漏极耦合到数据线(例如,位线)。在NAND架构中,阵列的一串中的每个存储器单元的漏极以源极到漏极方式一起串联耦合在源极线与位线之间。
传统的存储器阵列是布置在半导体衬底的表面上的二维(2D)结构。为了针对给定面积增大存储器容量且减小成本,已减小个体存储器单元的大小。然而,个体存储器单元的大小的减小存在技术限制,并且因此2D存储器阵列的存储器密度也存在技术限制。作为响应,正在研发三维(3D)存储器结构,例如3D NAND架构半导体存储器装置,以进一步增大存储器密度且降低存储器成本。
NOR和NAND架构半导体存储器阵列两者均可以通过解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在NOR架构半导体存储器阵列中,一旦被激活,则所选择的存储器单元就可将其数据值放置于位线上,从而取决于特定单元被编程所处的状态而引起不同的电流流动。在NAND架构半导体存储器阵列中,高偏置电压可施加到漏极侧选择栅极(SGD)线。以指定传递电压(例如,Vpass)驱动耦合到每个群组的未经选择的存储器单元的栅极的字线,以使每个群组的未经选择的存储器单元作为传递晶体管操作(例如,以不受其所存储的数据值限制的方式传递电流)。电流随后从源极线通过每个串联耦合的群组流动到位线,仅受每个群组中的所选择的存储器单元限制,从而使所选择的存储器单元的当前经编码数据值置于位线上。
NOR或NAND架构半导体存储器阵列中的每个快闪存储器单元可以个体地或共同地编程到一或数个经编程状态。举例来说,单层级单元(SLC)可以表示两个经编程状态(例如,1或0)中的一个,从而表示一个数据位。快闪存储器单元也可以表示两个以上经编程状态,从而允许制造较高密度的存储器而不增加存储器单元的数目,因为每个单元可以表示多于一个二进制数字(例如,多于一个位)。此类单元可以被称为多状态存储器单元、多数字单元或多层级单元(MLC)。在某些实例中,MLC可以指每单元可以存储两个数据位(例如,四个经编程状态中的一个)的存储器单元,三层级单元(TLC)可以指每单元可以存储三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(QLC)可以每单元存储四个数据位。MLC在本文中在其较广义上下文中使用,其指代可以每单元存储多于一个数据位(即,可以表示两个以上编程状态)的任何存储器单元。
存储器阵列或装置可以组合在一起以形成存储器系统的存储体,例如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。除其它之外,SSD可以用作计算机的主存储装置,其关于例如性能、大小、重量、强度、操作温度范围和电力消耗而具有优于具有移动零件的传统硬盘驱动器的优点。举例来说,SSD可以具有减少的寻道时间、时延或与磁盘驱动器相关联的其它延迟(例如,机电等)。SSD使用例如快闪存储器单元的非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更为多功能且紧凑。
SSD可以包含数个存储器装置,包含数个裸片或逻辑单元(例如,逻辑单元数字或LUN),且可以包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。此类SSD可以包含一或多个快闪存储器裸片,其上包含数个存储器阵列及外围电路系统。快闪存储器阵列可以包含组织成数个物理页的数个存储器单元块。在一些实例中,SSD还可以包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。SSD可以从主机接收与存储器操作相关联的命令,所述存储器操作例如在存储器装置与主机之间传送数据(例如,用户数据和相关联的完整性数据,例如错误数据和地址数据等)的读取或写入操作,或者从存储器装置擦除数据的擦除操作。
例如SSD的快闪存储装置仅可以被写入有限次数。如果未前瞻性地采取措施来管理SSD的使用寿命,那么在SSD的使用寿命结束时,数据可能损毁,或可能致使装置不可用。在由NAND快闪存储器单元组成的SSD中,每当数据被写入(例如,经由编程操作)时电子被捕获到存储器单元,且在数据被移除(例如,经由擦除操作)时电子被移走。每当电子在编程/擦除(P/E)循环期间进出隧道氧化物时可能损耗隧道氧化物,且因此缩短SSD的寿命。P/E循环量化例如SSD的快闪装置的持久性。持久性可表示为每天驱动器写入(drive writes perday,DWPD),其测量主机在其寿命的每一天可覆写驱动器的整个大小多少次。举例来说,对于具有200GB大小和5年保修期的SSD,如果DWPD为1,那么每天200GB可以被写入到装置中持续接下来五年。这对应于在预期装置发生故障之前200GB×365天×5年=365TB的累计写入。如果DWPD为10,那么每一天10×200GB=2TB可以写入到装置中。持久性可替代地表示为所写入的兆兆字节(terabyteswritten,TBW),其测量在驱动器的寿命期间可写入到驱动器中的总数据。举例来说,对于额定365TBW的SSD,在驱动器被设置更换之前可以写入多达365TB的数据。保证的TBW可以由销售商在其规范中提供。可以使用TBW和目标寿命(例如,担保3-5年的目标寿命)来计算每天的目标写入。举例来说,对于具有120TB的TBW和3年担保的SSD,目标每日写入可计算为120TB/3年/365天/1024=110GB/天。对于例如SSD的快闪存储装置,需要有效的存储器管理解决方案来维持合乎需要的装置使用寿命,同时维持令人满意的装置性能和用户体验。
发明内容
本申请的一个方面涉及一种存储器装置,其包括:存储器单元的群组;以及存储器控制器,其包含:用户装置存取追踪器电路,其经配置以检测期间所述存储器装置不含通过主机进行的活跃存取的闲置周期,并且追踪在指定时间窗口期间检测到的闲置周期计数;以及垃圾收集(GC)控制器,其经配置以根据闲置周期计数调节由存储器单元的一部分上的GC操作释放的存储器空间的量。
本申请的另一方面涉及经由存储器控制器优化存储器装置中的存储器利用率的方法,所述方法包括:检测期间存储器装置不含通过主机进行的活跃存取的闲置周期;追踪在指定时间窗口期间检测到的闲置周期计数;以及根据闲置周期计数调节由存储器单元的一部分上的垃圾收集(GC)操作释放的存储器空间的量。
附图说明
在未必按比例绘制的图式中,相似标号可以在不同视图中描述类似组件。具有不同的字母后缀的相似标号可表示类似组件的不同的例子。图式借助于实例而非限制性地总体上说明本文档中所论述的各种实施例。
图1说明包含存储器装置的环境的实例。
图2到3是说明NAND架构半导体存储器阵列的实例的示意图。
图4是说明存储器模块的实例的框图。
图5是说明存储器装置中的垃圾收集(GC)过程的实例的图式。
图6是说明可以并入有在此文档中所论述的本发明的一或多个实施例的存储器装置的实例的框图。
图7是说明包括随着时间推移由闲置周期分隔开的活跃I/O存取周期的主机存取模式的实例的图式。
图8是说明用户存取追踪器电路的实例的框图。
图9是说明至少基于例如主机存取模式的用户装置存取优化储器装置中的存储器利用率的另一方法的流程图。
图10是说明至少基于用户装置存取优化储器装置中的存储器利用率的另一方法的流程图。
图11是说明可在上面实施一或多个实施例的机器的实例的框图。
具体实施方式
快闪存储器的正常操作可涉及存储器单元的大量写入(编程)和擦除。垃圾收集(GC)是管理快闪存储器中的存储器利用率的操作。当快闪存储器中的空闲物理空间变小时,GC可以恢复存储装置上的空闲空间以允许写入新的主机数据。在GC期间,读取含有具有有效数据的页和具有失效数据(垃圾)的页的快闪块。通过写入到另一新的块来保留具有有效数据的页。随后用新位置更新逻辑块地址。被标记进行删除的具有失效数据的页保持在旧块中的位置上。随后,擦除整个旧块(其含有具有失效数据的页)。被擦除的块可以添加到空闲块池且用于新传入写入。写入到页的此数据和块擦除可以引起写入放大(WA)。可以使用物理地写入到快闪存储器(物理写入)的数据量与主机最初意图写入(主机写入)的数据量的比率来确定数值WA量度。实际物理写入通常大于主机写入,从而引起WA量度大于一。
GC操作可以消耗快闪存储器中的大量读取/写入带宽。因为GC采取已经由主机写入的有效日期并将其再次重新写入,所以可产生大WA。移动数据的重复的物理动作可以使隧道氧化物的绝缘层降级或损耗,缩短NAND快闪装置使用寿命,且减缓装置的擦除过程。当块未能擦除时,需要使用备用块。最终,当备用的用完时,SSD可以失败。额外地,如果与主机操作同时执行,那么GC可以使装置性能和用户体验显著降级。此外,如果一直执行GC操作,那么存储装置将非常快地消耗其整个可供使用的寿命,从而导致无法使用的短寿命。
已经提出各种存储器管理方式来减小或缓解例如归因于GC的快闪存储器损耗,且维持所期望的装置寿命。一种被称作过度供给(over-provisioning,OP)的方法尝试保留存储容量的专用部分用于GC使用。所保留的存储通常是主机不可存取或不可使用的。在较高OP和因此较小WA的情况下,可减少NAND装置的降级,且可延长寿命。然而,较高OP水平的益处是以较少的主机可使用的或可存取的存储空间为代价,因此降低了NAND装置的性能。另一方式是耗损均衡,其涉及向可供使用的单元均匀地分配P/E循环以避免过度使用某些块。对相同块的频繁写入或擦除会产生较多不良块,最终损耗SSD。针对归因于GC的损耗的又一解决方案是通过使用TRIM命令,其允许主机操作系统告知SSD被标记进行删除的失效数据的位置。SSD随后存取失效数据,在页层级上执行GC而非管理整个块,借此减小WA和增大SSD持久性。
然而,除其它之外,这些常规方式通常涉及GC操作,而无论装置的主机实际利用率如何。这可能具有若干缺点。过多GC可能降低装置性能和增加WA。确切地说,如果过度使用SSD且GC引擎不适于装置过度使用,那么可执行激进的GC活动,这可以增大WA和平均NANDP/E循环,缩短装置寿命,且引起过早的装置故障。另一方面,如果装置使用不足且GC引擎不适于这样的装置使用不足,那么可执行保守的GC活动,这可能降低装置性能和用户体验。因此,认为对于可以改进装置使用寿命同时维持令人满意的装置性能和用户体验的存储器管理解决方案的需求仍未得到满足。
本发明文档描述了存储器装置、系统、方法和机器可读媒体以用于调适对用户装置存取的GC激进性的实例,例如主机存取模式包括活跃I/O存取(主机读取或写入)的短突发,随后是闲置时间的拉伸。根据本文中所描述的一些实例,根据主机存取模式适应性GC引擎可起始或调谐GC激进性,例如在指定时间窗口期间检测到的闲置周期计数。闲置周期是当存储器装置不含通过主机的活跃存取时(与活跃主机存取周期相对)。在本文档中,GC激进性指代由GC操作释放的存储器空间的大小。因此,较激进的GC比不太激进的GC释放更多存储器空间。GC激进性的调谐(例如,增大或减小)可包含调谐GC速度、频率、持续时间或作为GC操作的目标的存储器空间的大小(例如,擦除块的数目)以及其它参数中的一或多个。举例来说,当检测到的特定主机存取模式时适应性GC引擎可起始或增大GC操作,例如当闲置周期计数低于闲置周期计数阈值时。如果检测到不同的主机存取模式,那么适应性GC引擎可抑制或减少GC操作,例如当闲置周期计数高于闲置周期计数阈值时。通过解决要执行的GC量和何时起始GC过程的重要问题,本文档中所描述的适应性GC可以有助于改进用户体验、装置性能和装置寿命的平衡。
本发明文档的另一方面是根据用户装置存取具有可调节高速缓冲存储器大小的动态SLC高速缓冲存储器。根据本文中所论述的一些实例,SLC高速缓冲存储器控制器可以经配置以至少基于例如主机存取模式的用户习惯在单层级单元(SLC)高速缓冲存储器和多层级单元(MLC)存储装置之间重新分配存储器单元的一部分。MLC是存储每存储器单元两个或大于两个位(与存储每存储器单元一个位的SLC相比)的NAND架构。MLC具有比SLC更高的容量和更低的成本。然而,SLC通常具有比MLC更高的持久性。SLC高速缓冲存储器写入通常比MLC写入更快,因此SLC高速缓冲存储器中存在的空闲存储器单元越多,则可以由主机以高性能写入的用户数据越多,从而产生更好的用户体验。SLC高速缓冲控制器可使用主机存取模式的信息增大或减小SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配。举例来说,主机存取模式可包含在指定的时间窗口内的闲置周期计数。当闲置周期计数低于闲置周期计数阈值时,那么SLC高速缓冲存储器的较大空闲块池可以分配用于用户以改进装置性能和用户体验。相反地,当闲置周期计数高于闲置周期计数阈值时,那么SLC高速缓冲存储器可以被消除或者其大小可以是有利于直接MLC(例如,TLC或QLC)操作减小的,使得维持相对较少数目的自由块用于用户。这可减缓可归因于过多GC操作的装置损耗,借此延长装置寿命和防止过早装置故障。
本文中所论述的GC激进性的自适应调谐可在装置存储器中仍存在用于主机写入的可用的空闲存储器空间时在自行决定的GC操作中使用(与在装置存储器耗尽供主机写入的空闲存储器空间时所调用的强制性GC操作相比)。因此,以如本文中所论述的自适应GC实施的存储器装置不对装置的主机使用强加限制,而是可以增强用户体验,同时支持TBW/时间持久性,而不损害装置寿命。
在以下详细描述中,参考附图,所述附图形成本发明的一部分,且附图中借助于说明示出特定实施例。在附图中,遍及若干视图,相似的标号描述实质上类似的组件。在不脱离本发明的范围的情况下可以利用其它实施例,且可以作出结构、逻辑和电性改变。因此,不应将以下详细描述视为具有限制性意义。
还应注意,尽管本文档中参考NAND媒体论述实施例,但是所述实施例不限于NAND媒体且可适用于NOR媒体。此外,尽管参考SSD论述一些实施例,但是所述实施例不限于SSD,而是可用于其它类型的非易失性存储装置,例如纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、快闪存储器、自旋力矩转移随机存取存储器(STTRAM)、电阻式随机存取存储器、字节可寻址三维交叉点存储器、PCM(相变存储器)等。
图1说明可包含在例如物联网(IoT)装置(例如,冰箱或其它家用电器、传感器、电动机或致动器、移动通信装置、汽车、无人机等)多种产品中以支持产品的处理、通信或控制的存储器装置110的实例。存储器装置110包含存储器控制器115和存储器阵列120。存储器阵列120可包含数个个体存储器裸片(例如,二维(2D)NAND裸片,或三维(3D)NAND裸片的堆叠)。存储器阵列120可以是布置在半导体衬底的表面上的2D结构。为了针对给定面积增大存储器容量且减小成本,已减小个体存储器单元的大小。替代地,存储器阵列120可以是3D结构,例如3D NAND存储器装置,其可以进一步增大存储器密度且降低存储器成本。
此类3D NAND装置通常包含存储单元的串,其串联(例如,以漏极到源极方式)耦合在接近源极的一或多个源极侧选择栅极(SGS)与接近位线的一或多个漏极侧选择栅极(SGD)之间。在实例中,SGS或SGD可以包含一或多个场效应晶体管(FET)或金属-氧化物半导体(MOS)结构装置等。在一些实例中,所述串将竖直延伸通过含有相应的字线的多个竖直隔开的层次。半导体结构可以邻近于存储单元的串而延伸以形成用于所述串的存储单元的通道。在竖直串的实例中,多晶硅结构可呈竖直地延伸的柱的形式。在一些实例中串可以“折叠”,且因此相对于U形柱而布置。在其它实例中,多个竖直结构可堆叠在彼此上以形成存储单元串的堆叠阵列。
在3D架构半导体存储器技术中,堆叠竖直结构,从而增大层次、物理页的数目,且因此增大存储器装置(例如,存储装置)的密度。在实例中,存储器装置110可以是主机装置的离散存储器或存储装置组件。在其它实例中,存储器装置110可以是堆叠或以其它方式随主机装置的一或多个其它组件一起包含的集成电路(例如,芯片上系统(SOC)等)的部分。
存储器控制器115可以与存储器阵列120通信,以便将数据传送到(例如,写入或擦除)存储器阵列的存储器单元、平面、子块、块或页中的一或多个,或者从存储器阵列的存储器单元、平面、子块、块或页中的一或多个传递数据(例如,读取)。除其它之外,存储器控制器115可以包含电路系统或固件,包含一或多个组件或集成电路。举例来说,存储器控制器115可以包含一或多个存储器控制单元、电路或组件,其经配置以控制跨越存储器阵列120的存取及提供主机与存储器装置110之间的转译层。存储器控制器115可以包含一或多个输入/输出(I/O)电路、线或接口以向存储器阵列120传送数据或从存储器阵列120传送数据。存储器控制器115可以包含存储器管理器125和阵列控制器135。
除其它之外,存储器管理器125可以包含电路系统或固件,例如与各种存储器管理功能相关联的数个组件或集成电路。出于当前描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含损耗均衡(例如,垃圾收集或回收)、错误检测或校正、块引退,或一或多个其它存储器管理功能。存储器管理器125可以将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或者产生用于阵列控制器135或存储系统110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含管理表130的集合,所述管理表经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储单元相关联的各种信息)。举例来说,管理表130可以包含关于耦合到存储器控制器115的一或多个存储器单元块的块年龄、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个检测到的错误的数目高于阈值,那么位错误可以被称为不可校正位错误。除其它之外,管理表130可以维持可校正或不可校正位错误的计数。
除其它之外,阵列控制器135可以包含经配置以控制与以下操作相关联的存储器操作的电路系统或组件:向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据、从所述存储器单元读取数据或擦除所述存储器单元。阵列控制器135可以包含错误校正码(ECC)组件140,除其它之外,所述ECC组件可以包含ECC引擎或经配置以检测或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器单元或从所述存储器单元读取数据相关联的错误的其它电路系统。存储器控制器115可经配置以有效地检测与各种操作或数据的存储相关联的错误出现(例如,位错误、操作错误等)并从所述错误出现中恢复,同时维持在主机与存储器装置110之间传送的数据的完整性,或维持所存储的数据的完整性(例如,使用冗余RAID存储等),并且可以移除(例如,注销)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止未来错误。
在一些实例中,存储器阵列可包括数个NAND裸片,且特定NAND裸片的存储器控制器115的一或多个功能可实施于所述特定裸片上的裸片上控制器上。还可利用控制功能性的其它组织和轮廓,例如针对每个裸片、平面、超级块、块、页等的控制器。
存储器阵列120可以包含布置于例如数个装置、半导体裸片、平面、子块、块或页中的若干存储器单元。在操作中,数据通常以页写入到NAND存储器装置110或从所述NAND存储器装置读取,且以块擦除。然而,可以视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。NAND存储器装置110的数据传递大小通常被称作页;然而主机的数据传递大小通常被称作扇区。
虽然数据页可以包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)及其对应的元数据,但是页的大小通常仅指代用于存储用户数据的字节的数目。作为实例,具有4KB的页大小的数据页可包含4KB的用户数据(例如,假定512B的扇区大小的8个扇区)以及对应于用户数据的元数据的数个字节(例如32B、54B、224B等),例如完整性数据(例如,错误检测或校正代码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可提供不同的页大小,或可需要与其相关联的不同量的元数据。举例来说,不同的存储器装置类型可具有不同的位错误率,其可引起必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可需要与具有较低位错误率的存储器装置相比更多字节的错误校正码数据)。作为实例,多层级单元(MLC)NAND快闪装置可具有与对应的单层级单元(SLC)NAND快闪装置相比较高的位错误率。因而,MLC装置可需要与对应的SLC装置相比更多的元数据字节以用于错误数据。
图2是说明包含数个存储器单元串(例如,第一到第三A0存储器串205A0-207A0,第一到第三An存储器串205An-207An,第一到第三B0存储器串205B0-207B0,第一到第三Bn存储器串205Bn-207Bn等)的3D NAND架构半导体存储器阵列200的实例的示意图,所述存储器单元串组织成块(例如,块A 201A、块B 201B等)和子块(例如,子块A0 201A0、子块An 201An、子块B0 201B0、子块Bn 201Bn等)。存储器阵列200表示通常将在块、装置或存储器装置的其它单元中找到的较大数目的类似结构的一部分。
每个存储器单元串包含数个层次的电荷存储晶体管(例如,浮动栅极晶体管、电荷捕集结构等),所述电荷存储晶体管在Z方向上以源极到漏极方式堆叠于源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一到第三A0SGS 231A0-233A0、第一到第三An SGS231An-233An、第一到第三B0SGS 231B0-233B0、第一到第三Bn SGS 231Bn-233Bn等)与漏极侧选择栅极(SGD)(例如,第一到第三A0SGD 226A0-228A0、第一到第三An SGD226An-228An、第一到第三B0SGD 226B0-228B0、第一到第三Bn SGD 226Bn-228Bn等)之间。3D存储器阵列中的每个存储器单元串可沿着X方向布置为数据线(例如,位线(BL)BL0 520-BL2 522),且沿着Y方向布置为物理页。
在物理页内,每个层次表示一个存储器单元行,并且每个存储器单元串表示一列。子块可以包含一或多个物理页。块可以包含数个子块(或物理页)(例如,128个、256个、384个等)。虽然本文中说明为具有两个块,每个块具有两个子块,每个子块具有单个物理页,每个物理页具有三个存储器单元串,且每个串具有8个层次的存储器单元,但是在其它实例中,存储器阵列200可以包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每个存储器单元串按需要可包含更多或更少层次(例如,16、32、64、128等),以及电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的一或多个额外层次的半导体材料。作为实例,48GB TLC NAND存储器装置可以包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548块,以及每装置4个或更多个平面。
存储器阵列200中的每个存储器单元包含耦合到(例如,以电或以其它方式可操作地连接到)存取线(例如,字线(WL)WL00-WL70 210A-217A、WL01-WL71 210B-217B等)的控制栅极(CG),所述存取线按需要跨越特定层次或层次的一部分共同地耦合控制栅极(CG)。3D存储器阵列中的特定层次且因此串中的特定存储器单元可使用相应存取线来存取或控制。可以使用各种选择线来存取选择栅极的群组。举例来说,可使用A0SGD线SGDA0 225A0存取第一到第三A0SGD 226A0-228A0,可使用SGD线SGDAn 225An存取第一到第三An SGD 226An-228An,可使用B0SGD线SGDB0 225B0存取第一到第三B0SGD 226B0-228B0,且可使用Bn SGD线SGDBn 225Bn存取第一到第三Bn SGD226Bn-228Bn。可使用栅极选择线SGS0 230A存取第一到第三A0SGS 231A0-233A0和第一到第三An SGS 231An-233An,且可经由栅极选择线SGS1 230B存取第一到第三B0SGS231B0-233B0和第一到第三Bn SGS 231Bn-233Bn。
在实例中,存储器阵列200可包含数个层级的半导体材料(例如,多晶硅等),其经配置以耦合阵列的相应的层次的每个存储器单元的控制栅极(CG)或选择栅极(或CG或选择栅极的一部分)。可以使用位线(BL)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,WL)来存取、选择或控制特定串中的一或多个层次处的特定存储器单元。
图3说明NAND架构半导体存储器阵列300的一部分的实例示意图,所述阵列包含布置于串(例如,第一到第三串305-307)和层次(例如,说明为相应字线(WL)WL0-WL7310-317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)的二维阵列中的多个存储器单元302和感测放大器或装置360。举例来说,存储器阵列300可说明例如图2中所说明的3DNAND架构半导体存储器装置的存储器单元的一个物理页的一部分的实例示意图。
每个存储器单元串使用相应的源极侧选择栅极(SGS)(例如,第一到第三SGS331-333)耦合到源极线(SRC),且使用相应的漏极侧选择栅极(SGD)(例如,第一到第三SGD 326-328)耦合到相应数据线(例如,第一到第三位线(BL)BL0-BL2 320到322)。虽然在图3的实例中说明为具有8个层次(例如,使用字线(WL)WL0-WL7 310-317)和三个数据线(BL0-BL2326-328),但其它实例按需要可以包含具有更多或更少层次或数据线的存储器单元串。
在如实例存储器阵列300的NAND架构半导体存储器阵列中,可通过感测与含有所选择的存储器单元的特定数据线相关联的电流或电压变化来存取所选择的存储器单元302的状态。存储器阵列300可使用一或多个驱动器来存取(例如,由控制电路、一或多个处理器、数字逻辑等)。在实例中,取决于将在特定存储器单元或存储器单元的集合上执行的所期望的操作的类型,一或多个驱动器可通过将特定电势驱动到一或多个数据线(例如,位线BL0-BL2)、存取线(例如,字线WL0-WL7)或选择栅极来激活特定存储器单元或存储器单元的集合。
为了将数据编程或写入到存储器单元,可将编程电压(Vpgm)(例如,一或多个编程脉冲等)施加到所选择的字线(例如,WL4),且因此施加到耦合到所选择的字线的每个存储器单元的控制栅极(例如,耦合到WL4的存储器单元的第一到第三控制栅极(CGs)341-343)。举例来说,编程脉冲可以在15V处或附近开始,并且在某些实例中,可以在每个编程脉冲施加期间在幅值上增大。在将编程电压施加到所选择的字线时,电势(例如,接地电势Vss)可施加到作为编程的目标的存储器单元的数据线(例如,位线)和衬底(及因此源极和漏极之间的通道),从而导致从通道到目标存储器单元的浮动栅极的电荷转移(例如,直接注入或Fowler-Nordheim(FN)隧穿等)。
相比之下,可以将传递电压(VPASS)施加到具有并不以编程为目标的存储器单元的一或多个字线,或可以将禁止电压(例如,Vcc)施加到具有并不以编程为目标的存储器单元的数据线(例如,位线),以例如禁止电荷从通道传送到此类非目标存储器单元的浮动栅极。举例来说,传递电压可以取决于所施加的传递电压与以编程为目标的字线的接近度而变化。禁止电压可以包含电源电压(Vcc),例如相对于接地电势Vss的来自外部源或电源(例如,电池、AC到DC转换器等)的电压。
作为实例,如果将编程电压(例如,15V或更高)施加到特定字线,例如WL4,那么可将10V的传递电压施加到一或多个其它字线,例如WL3、WL5等,以禁止非目标存储器单元的编程,或保留存储在并不以编程为目标的此类存储器单元上的值。随着所施加的编程电压与非目标存储器单元之间的距离增大,制止对非目标存储器单元进行编程所需的传递电压可以减小。举例来说,在将15V的编程电压施加到WL4的情况下,可将10V的传递电压施加到WL3和WL5,可将8V的传递电压施加到WL2和WL6,可将7V的传递电压施加到WL1和WL7等。在其它实例中,传递电压或字线的数目等可以更高或更低,或更多或更少。
耦合到数据线(例如,第一位线、第二位线或第三位线(BL0-BL2)320-322)中的一或多个数据线的感测放大器360可以通过感测特定数据线上的电压或电流来检测相应的数据线中的每个存储器单元的状态。
在一或多个编程脉冲(例如,Vpgm)的施加之间,可执行验证操作以确定所选择的存储器单元是否已达到其预期的经编程状态。如果所选择的存储器单元已达到其预期的经编程状态,那么可以禁止其进一步编程。如果所选择的存储器单元尚未达到其预期的经编程状态,那么可以施加额外的编程脉冲。如果所选择的存储器单元在特定数目的编程脉冲(例如,最大数目)之后尚未达到其预期的经编程状态,那么可以将所选择的存储器单元或与此类所选择的存储器单元相关联的串、块或页标记为有缺陷的。
为了擦除存储器单元或存储器单元群组(例如,擦除通常以块或子块执行),可(例如,使用一或多个位线、选择栅极等)将擦除电压(Vers)(例如,通常Vpgm)施加到作为擦除的目标的存储器单元的衬底(且因此施加到源极与漏极之间的通道),同时目标存储器单元的字线保持在例如接地Vss的电势处,从而导致从目标存储器单元的浮动栅极到通道的电荷转移(例如,直接注入或Fowler-Nordheim(FN)隧穿等)。
图4是说明存储器装置400的实例的框图,所述存储器装置包含具有多个存储器单元404以及提供与存储器阵列402通信或在存储器阵列402上执行一或多个存储器操作的一或多个电路或组件。存储器装置400可包含行解码器412、列解码器414、感测放大器420、页缓冲器422、选择器424、输入/输出(I/O)电路426和存储器控制单元430。
存储器阵列402的存储器单元404可布置于块中,例如第一块402A及第二块402B。每个块可包含子块。举例来说,第一块402A可包含第一子块402A0和第二子块402An,且第二块402B可包含第一子块402B0和第二子块402Bn。每个子块可以包含数个物理页,每个页包含数个存储器单元404。虽然在本文中说明为具有两个块,每个块具有两个子块,并且每个子块具有数个存储器单元404,但是在其它实例中,存储器阵列402可包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可布置成数个行、列、页、子块、块等,并使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等进行存取。
存储器控制单元430可根据在控制线432上接收的一或多个信号或指令控制存储器装置400的存储器操作,所述一或多个信号或指令包含例如指示所需操作(例如,写入、读取、擦除等)的一或多个时钟信号或控制信号,或在一或多个地址线416上接收的地址信号(A0-AX)。在存储器装置400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。在存储器装置400外部的装置的实可包含(但不限于)主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
存储器装置400可使用存取线406和第一数据线410向(例如,写入或擦除)或从(例如,读取)存储单元404中的一或多个传送数据。存储器控制单元430可包含耦合到行解码器412的状态机431、列解码器414、I/O电路426。状态机413也可以输出快闪存储器的数据状态(例如,READY/忙或合格/不合格)。在一些设计中,状态机413可经配置以管理编程过程。行解码器412和列解码器414可从地址线416接收和解码地址信号(A0-AX),确定哪些存储器单元404待存取,且将信号提供到存取线406(例如,多个字线(WL0-WLm)中的一或多个)或第一数据线410(例如,多个位线(BL0-BLn)中的一或多个)中的一或多个,例如上文所描述。
存储器装置400可以包含例如感测放大器420的感测电路,其经配置以使用第一数据线410来确定(例如,读取)存储器单元404上的数据的值,或确定待写入到存储器单元404的数据的值。举例来说,在存储器单元404的所选择的串中,感测放大器420中的一或多个可响应于读取电流在存储器阵列402中穿过所述所选择的串流动到数据线410而读取所选择的存储器单元404中的逻辑电平。
在存储器装置400外部的一或多个装置可使用I/O线(DQ0-DQN)408、地址线416(A0-AX)或控制线432来与存储器装置400通信。输入/输出(I/O)电路426可根据(例如)控制线432和地址线416使用I/O线408将数据的值传送到存储器装置400中或从其中传送出数据的值,例如将数据的值传送到页缓冲器422或存储器阵列402中或从其中传送出数据的值。页缓冲器422可在数据编程到存储器阵列402的相关部分中之前存储从存储器装置400外部的一或多个装置接收到的数据,或可在数据传输到存储器装置400外部的一或多个装置之前存储从存储器阵列402读取的数据。
列解码器414可接收地址信号(A0-AX)并且将其解码为一或多个列选择信号(CSEL1-CSELn)。选择器424(例如,选择电路)可接收列选择信号(CSEL1-CSELn)且选择页缓冲器422中的表示待从存储器单元404读取或待编程到存储器单元404中的数据的值的数据。所选择的数据可使用第二数据线418在页缓冲器422和I/O电路426之间传递。在一些实例中,快闪转译层(未示出)可将由主机提供的地址映射到由行解码器412和列解码器414使用以读取存储器阵列402中的数据的物理存储器地址。
存储器控制单元430可从外部源或电源(例如,内部或外部电池、AC到DC转换器等)接收正和负电源应信号,例如电源电压Vcc 434和接地电位Vss 436。在某些实例中,存储器控制单元430可包含调节器428以内部地提供正或负电源信号。
如先前描述,存储器装置的存储器单元可布置为经配置以存储仅单个数据位的SLC,或存储两个或两个以上数据位的MLC。举例来说,三层级单元(TLC)可存储每单元三个数据位,且四层级单元(QLC)可存储每单元四个数据位。与MLC(例如,TLC或QLC)存储装置相比,SLC单元通常存储较少数据,且以适合用作仅使用SLC存储器单元的存储装置的容量制造存储器装置不太具有成本效益。然而,SLC存储器单元可提供更好的性能和更高的可靠性。举例来说,SLC单元可以较少编程循环被写入,借此减小编程期间来自非预期功率损耗的损坏的机会。存储器管理的折衷解决方案是使用SLC高速缓冲存储器,其中一些单元可被配置为SLC,且其它单元可被配置为MLC。举例来说,数据可首先被写入到SLC,且稍后在存储器装置不忙(例如,闲置状态)时被传送到MLC。在一些实例中,当接收主机写入请求时,存储器控制器可以检查是否存在空闲的SLC高速缓冲存储器。如果存在空闲的SLC高速缓冲存储器,那么数据可随后被写入到SLC高速缓冲存储器,或者如果没有可供使用的空闲SLC高速缓冲存储器,那么替代地直接写入到MLC存储装置。SLC高速缓冲存储器机制提供SLC存储器单元的速度和可靠性与MLC存储器单元的存储容量之间的平衡。在一些实例存储器装置中,存储器单元可以由SLC和MLC之间的固件重新配置,且高速缓冲存储器大小可以在使用期间改变(动态大小SLC高速缓冲存储器)。举例来说,SLC高速缓冲存储器大小可以基于存储器装置有多满(装置利用率)而变化。随着装置填满,经配置为SLC高速缓冲存储器的存储器单元迁移到MLC以增加总数据存储容量。
SLC高速缓冲存储器的使用可能导致写入放大(WA),因为相同数据被写入到快闪存储器的物理媒体两次,第一次到SLC高速缓冲存储器,并且随后到MLC存储装置。WA量度可以被确定为相对于主机意图随着其在整个存储器装置中移动在所述数据的寿命期间写入的逻辑量物理地写入到存储媒体的实际信息量。SLC高速缓冲存储器越大,则写入请求将由SLC高速缓冲存储器服务的可能性越大,因此WA增加的概率越大。除了使用SLC高速缓冲存储器之外,垃圾收集(GC)也可能导致大WA,如先前所论述。
本发明文档描述了自动地调谐GC操作且至少部分地基于例如主机存取模式的用户装置存取调节SLC高速缓冲存储器大小的方法、系统、存储器装置和机器可读媒体的实例。在实例中,主机存取模式包含在指定的时间窗口内的闲置周期计数。在另一实例中,主机存取模式包含在指定时间窗口期间在活跃主机存取周期与闲置周期之间的状态转换计数。根据所述主机存取模式,可增大或减小GC激进性,且可在SLC和MLC之间配置或重新配置存储器单元。
通过考虑用户装置存取的信息,例如,主机存取模式作为GC激进性和SLC高速缓冲存储器大小的确定的部分,可以更好地针对用户工作负荷定制存储器装置,且可以实现装置性能与装置寿命之间的改进的平衡。这与不会考虑用户习惯或主机存取模式的常规的GC过程和/或SLC高速缓冲存储器管理形成对比。当设置SLC高速缓冲存储器大小时考虑用户习惯或主机存取模式允许存储器装置增大SLC高速缓冲存储器以提供较大突发性能和更好的用户体验用于光工作负荷用户,因为较轻工作负荷通常对应其特征在于不太频繁的I/O存取的主机存取模式或活跃I/O存取状态与闲置状态之间的较低转换频率(即,在指定时间窗口期间活跃主机存取周期与闲置周期之间的较少转换),指示存储器装置是使用不足的(例如,具有不太使用的SLC高速缓冲存储器和较少GC操作)。在此情况下,可执行较激进的GC操作,且可维持较大SLC高速缓冲存储器大小(例如,通过减少从SLC高速缓冲存储器重新分配到MLC存储装置的存储器单元),因为此些操作导致预期的装置寿命之前的低装置损耗风险。在大多数主机写入正去往SLC高速缓冲存储器的情况下,SLC高速缓冲存储器利用率增大,WA可最大化,且可改进装置性能和用户体验。相比之下,更重的工作负荷通常对应于其特征在于更频繁的I/O存取、活跃I/O存取状态与闲置状态之间更高的转换频率(即,在指定时间窗口期间活跃主机存取周期与闲置周期之间更多的转换)的主机存取模式,这指示装置是过度使用的。在此情况下,可调用较少GC操作,且可例如通过将更多SLC存储器单元重新分配到MLC存储装置来减小SLC高速缓冲存储器大小。在大多数主机数据直接写入到MLC存储装置的情况下,写入到物理介质的总数据可减少,且可延长存储器装置的预期寿命。
图5是说明存储器装置(例如,SSD)中的垃圾收集(GC)过程的实例的框图500。GC过程包含将来自擦除块的有效数据编程到另一有效块。借助于实例而非限制,图5示出了存储器装置中的块505-1到505-10。使用505-2作为实例,块锁定505-2示出为包含四个页510-1到510-4,其中页510-1、510-2和510-4被标记为无效(意味着它含有失效数据、垃圾,用于标记缺失),且页510-3标记为有效(意味着其存储需要保留的有效数据)。GC操作可通过将页510-3中的有效数据编程到例如包含页515-1到515-4的块505-8的另一块(不同于块505-2)将块505-2作为目标。如图5中的虚线箭头520由所示,页510-3中的有效数据可编程到页515-1中。在页510-3中的有效数据编程到页515-1中之后,块505-2中的所有页标记为无效的,且整个擦除块505-2可受制于GC。应注意,尽管绘示于存储器装置中十个块以及块505-2中四个页,但是存储器装置可具有任何数目的块,且每个块可具有任何数目的页。
图6是示出可并入本文中所论述的本发明的一或多个实施例的存储器装置600的实例的框图。除其它之外,存储器装置600可包含任何形式的非瞬态存储装置,例如固态驱动器(SSD)、随身盘、存储卡,或嵌入式装置存储装置。在一些实例中,存储器装置600可包含非易失性存储器,例如快闪存储器(例如,NAND快闪存储器),来存储数据。如图6中所说明,存储器装置600可包含主机接口605、存储器控制器610和可组织成各种通道的各种快闪存储器620。主机接口605管理存储器装置600与例如台式或膝上型计算机、服务器、移动装置及其它装置等机器之间的通信。在实例中,存储器装置600可被配置成SSD,在此情况下,主机接口605可与例如串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、集成式装置电子器件(IDE)等标准硬盘驱动器数据接口兼容。
存储器控制器610可执行本文中所描述的各种存储器管理功能,其包含在快闪存储器620上的读取、写入和擦除操作。快闪存储器620可包含存储用户数据以及通过存储器装置内部地管理的其它数据两者的电路系统。在一些实例中,快闪存储器620可包含一或多个快闪裸片,其中的每一个含有快闪存储器620的总存储容量的一部分。与单个、单体裸片相比,裸片可以较低成本堆叠。个体裸片内所含的存储器可被分割成擦除块。个别块可包含数个页,每个页含有存储器单元阵列。页表示可单独地编程或读取的数据的最小部分。每个页可处于三个状态中的一个中:空闲(当前不存储任何数据)、有效(当前正存储数据),和无效(先前正存储有效数据,但不再存储有效数据且尚未空闲)。当新数据写入到快闪存储器时,定位空闲页,且将数据写入到随后被标记为存储有效数据的空闲页。页通常在擦除块内依次写入。个体通常不可重写。因此,当存储在快闪存储器中的数据将由应用程序改变时,将含有数据的整个页写入到新页,且将原始页标记为无效。如此,GC操作允许存储器装置600(例如,SSD)以擦除块粒度回收无效页。擦除块中的页可复位且再次标记为空闲。
存储器控制器610可包含快闪转译层(FTL)612、用户装置存取追踪器电路614、垃圾收集(GC)控制器616和SLC高速缓冲存储器控制器618中的一或多个。FTL 612可转译上部文件系统读取和写入命令,且管理存储装置的内部存储器数据布局。FTL 612支持地址转译,也被称为逻辑到物理地址映射,其将来自文件系统的逻辑地址改变为快闪存储器中的物理地址。FTL 612可将每个写入请求重导向到快闪存储器的空区域,由此避免快闪存储器的“写入之前擦除”限制。此外,除其它之外,FTL 612可辅助各种存储器管理过程,包含GC、损耗均衡、不良块管理、错误控制功能。FTL 612可在FTL操作期间突然断电的情况下进一步提供断电恢复以保存FTL数据结构并维持数据一致性。
借助于实例而非限制,图6中示出了两个存储器管理功能,即通过GC控制器616操作的GC操作和通过SLC高速缓冲存储器控制器618操作的SLC高速缓冲存储器配置。GC操作和SLC高速缓冲存储器配置中的一或两者可用于用户装置存取,例如用户装置存取追踪器电路614所产生的主机存取模式。适用于如本文中所论述的主机存取模式的GC控制和SLC高速缓冲存储器配置的各种实施例可改进存储器装置性能与装置寿命的平衡。
用户装置存取追踪器电路614经配置以确定存储器装置的主机存取模式。主机存取模式可表示在活跃I/O存取状态(其中存在存储器单元的读取或写入操作)与闲置状态(其中不存在存储器单元的主机存取)之间的转换。用户装置存取追踪器电路614可追踪表征存取存储器装置且写入到存储器单元的用户的一或多个模式量度。此类量度的实例可包含在指定时间窗口期间的活跃I/O存取周期的计数、密度或统计量度;在指定时间窗口期间的闲置周期计数、密度或统计量度;在指定时间窗口期间活跃I/O存取状态中的总时间耗费或平均时间耗费;或在指定时间窗口期间闲置状态中的总时间损耗或平均时间耗费,以及其它量度。用于评定前述量度中的一或多个时间窗口可以是单元时间(例如,一天、一周或一月)或具有指定持续时间的其它时间窗口。主机存取模式量度可连续地(响应于每个主机写入或NAND写入)或周期性地(例如,在指定时间间隔或根据指定排程)评估。用户装置存取追踪器电路614可通过比较主机存取模式量度与阈值来确定装置是否使用不足或过度使用。举例来说,不太频繁的活跃I/O存取或活跃与闲置状态之间的较低跃迁率可指示较轻用户工作负荷和装置使用不足。相比之下,更频繁的活跃I/O存取或活跃与闲置状态之间的较高跃迁率可指示更重的工作负荷和装置过度使用。下文论述用于评定用户装置存取的用户装置存取追踪器电路的实例,例如参考图8。
GC控制器616可至少基于主机存取模式起始或调节GC操作。GC过程可以是在存储器装置的闲置状态期间起始的(例如,没有存储器单元的活跃I/O存取,比如用于主机的读取或写入命令)。在实例中,如果主机存取模式量度超过阈值,那么用户装置存取追踪器电路614确定存储器装置超前目标使用,并且GC控制器616可采取激进的姿态来增加GC操作,例如通过增大GC速度、频率、持续时间或作为GC操作的目标的擦除块的数目。相反地,如果主机存取模式量度低于阈值,那么存储器装置被确定为落后于目标使用。GC控制器616可随后采取保守的姿态来减少GC操作,例如通过减小GC速率、频率、持续时间或作为GC操作的目标的擦除块的数目。当调用GC控制器616来擦除擦除块(例如,图5的擦除块505-2)时,假定擦除块中存在图5的有效数据510-3,则GC控制器616可产生写入请求。当处理写入请求时,有效数据510-3可以被写入到新页515-1。一旦写入请求已经被提交用于处理,则GC控制器616可擦除具有无效数据的块(例如,图5的块505-2)。
如上文所论述适用于主机存取模式的GC过程(下文称为“存取模式适用的GC过程”)可通过触发事件来触发。在实例中,当实际装置年龄超过年龄阈值时,GC控制器616可触发存取模式适用的GC过程。实际装置年龄可以使用存储器装置的第一使用(例如,第一存储器写入)测量。实际装置年龄可以使用存储器装置的内部振荡器或实时时钟来确定。替代地,实际装置年龄可以使用实际累计P/E循环来测量。年龄阈值的非限制性实例为从存储器装置的第一主机写入起近似地3个月。装置年龄可通过实际累计P/E循环来测量。当数据存储在快闪存储器中时,P/E循环出现。给定快闪架构的P/E循环的最大数目,被称为快闪单元持久性,是装置预期寿命的指标。如果实际累计P/E循环超过P/E循环阈值(例如,在非限制性实例中近似地1000个PE循环),那么GC控制器616可触发存取模式适用的GC过程。在一些实例中,当累计主机写入计数超过主机字节计数阈值时,GC控制器616可追踪主机写入计数,且触发存取模式适用的GC过程。在一些实例中,当累计物理写入计数超过物理字节计数阈值时,GC控制器616可追踪物理写入计数(写入到物理介质的日期的量),且触发存取模式适用的GC过程。当累计主机工作负荷通常较轻且存在装置故障的风险较低时,通过装置年龄或通过上文所论述写成总字节使用触发事件来延迟存取模式适用的GC过程调用可在存储器装置的较早年龄期间改进系统性能和用户体验。
SLC高速缓冲存储器控制器618可经配置以控制SLC高速缓冲存储器的可用性以用于最大化用户体验和性能。SLC高速缓冲存储器控制器控制器618可例如通过重新配置SLC与MLC之间的一或多个存储器单元来设定动态SLC高速缓冲存储器大小。SLC高速缓冲存储器重新配置可基于存储器装置的一或多个量度。实例量度包含装置利用、可供使用的空闲存储器、所使用的存储器、写入放大或类似者中的一或多个。图6说明确定适用于主机存取模式的动态SLC高速缓冲存储器大小。SLC高速缓冲存储器控制器618可在SLC高速缓冲存储器和MLC存储装置(例如,TLC或QLC)之间重新分配存储器单元的群组的一部分。在实例中,SLC高速缓冲存储器控制器618可至少基于主机存取模式确定存储器单元重新分配的量,以及何时起始所述重新分配。举例来说,如先前所论述,用户装置存取追踪器电路614可以通过比较主机存取模式量度与阈值来确定存储器装置是否超前或者落后目标使用要求。如果存储器装置超前于目标使用,则SLC高速缓冲存储器控制器618可在SLC高速缓冲存储器中维持相当大的空闲块池,且减少从SLC高速缓冲存储器到MLC存储装置的存储器单元重新分配。如果存储器装置落后于目标使用,则SLC控制器618可在SLC高速缓冲存储器中维持浅空闲块池,且增大存储器单元到MLC存储装置的重新分配。SLC高速缓冲存储器和MLC存储装置之间的这种存储器单元重新分配可有助于确保满足装置寿命要求,而不会实质上损害装置性能和用户体验。
图7是说明包括随着时间推移由闲置周期(标记且被称作“I”周期)分隔开的活跃I/O存取周期(标记且被称作“A”周期)的主机存取模式的实例的图式。每个“A”会话和“I”会话持续相应的时间持续时间。主机写入可出现在“A”会话期间。在“I”会话中没有出现读取或写入操作。图8是说明其为图6的用户装置存取追踪器电路614的实施例的用户装置存取追踪器电路810的实例的框图。用户装置存取追踪器电路810可维持计数器在指定时间周期期间对“A”周期、“I”周期或“A”周期与“I”周期之间转换的数目(例如,“A”会话到“I”会话转换的数目或“I”会话到“A”会话转换的数目)计数。用户装置存取追踪器电路810可使用“A”周期、“I”周期的计数或会话转换的数目确定一或多个量度。借助于实例而非限制,此类量度可包含在具有指定持续时间的时间窗期间活跃主机存取周期与闲置周期之间转换计数。当在单位时间(例如,一天、一周、一月,或类似者)中被检测到时,活跃与闲置周期之间转换的此类计数被称作活跃/闲置状态转换频率812。在实例中,用户装置存取追踪器电路810可确定表示单元时间中的“A”周期的数目的活跃状态密度量度814或表示单元时间中的“I”周期的数目的闲置状态密度816。如果转换频率812低于阈值频率,那么存储器装置很可能使用不足(例如,较轻的用户工作负荷)。GC控制器616可增大GC操作。SLC高速缓冲存储器控制器618可维持SLC高速缓冲存储器中的空闲块的较大池,且减小SLC高速缓冲存储器到MLC存储装置中的存储器单元的重新分配。相比之下,如果转换频率量度812高于阈值频率,那么存储器装置很可能过度使用(例如,更重的用户工作负荷)。GC控制器616可减少GC操作。SLC高速缓冲存储器控制器618可减小SLC高速缓冲存储器大小,且增大从SLC到MLC的存储器单元重新分配。
GC操作和SLC高速缓冲存储器大小可替代地适于活跃状态密度量度814或闲置状态密度816。如果活跃状态密度量度814或闲置状态密度816低于阈值速率,那么存储器装置很可能使用不足。随后可增大GC操作,且较大大小的SLC高速缓冲存储器可分配给用户。相反地,如果活跃状态密度量度814或闲置状态密度816高于所述阈值速率,那么存储器装置很可能过度使用。随后可减小GC操作,且更多的SLC高速缓冲存储器存储器单元可分配到MLC存储装置。
图9是说明根据本文中论述的一些实例至少基于用户装置存取(例如,主机存取模式)优化存储器装置中的存储器利用率的另一方法900的流程图。方法900可实施于存储器控制器610或其实施例或变体中,且由存储器控制器610或其实施例或变体执行。虽然方法900中的块以特定次序示出,但是这些步骤的次序可以修改。因此,所说明的实施例可以不同次序执行,且一些动作/块可并行执行(例如,块920和930可以并行地执行)。额外地,在各种实施例中,可以省略一或多个动作/块(例如,块920或930中的一个)。
在910处,可以例如通过如图6和8中所说明的用户装置存取追踪器电路614或其变体810识别存储器装置的主机存取模式。主机存取模式可包括在存储器装置的活跃I/O存取状态(其中存在存储器单元的读取或写入操作)与闲置状态(其中不存在存储器单元的主机存取)之间的转换。可以追踪一或多个模式量度,其定量地表示存取存储器装置和写入到存储器单元的模式。此类量度的实例可包含在指定时间窗口期间的活跃I/O存取周期的计数、密度或统计量度;在指定时间窗口期间的闲置周期计数、密度或统计量度;在指定时间窗口期间的活跃I/O存取状态中的总时间耗费或平均时间耗费;或在指定时间窗口期间闲置状态中的总时间损耗或平均时间耗费,以及其它量度。主机存取模式量度可以是连续地或周期性地评估的。
在920处,可以至少基于主机存取模式起始或调节GC操作,例如使用GC控制器616。GC过程可以是在存储器装置的闲置状态期间起始的(没有存储器单元的活跃I/O存取)。GC过程的部分是先前参考图5论述的。对于所识别的擦除块(例如,图5的擦除块505-2),在写入请求的处理之后,擦除块505-2中的有效数据510-3可以被写入到新页515-1,并且含有无效数据的整个块505-2被擦除。
主机存取模式可指示工作负荷的水平,例如对应于存储器使用不足的轻工作负荷,或对应于存储器过度使用的被过度使用的重工作负荷。举例来说,不太频繁的活跃I/O存取或活跃与闲置状态之间的较低跃迁率可指示更轻用户工作负荷和存储器装置的使用不足。相比之下,更频繁的活跃I/O存取或活跃与闲置状态之间的较高跃迁率可指示更重的工作负荷和存储器装置的过度使用。在920处,可根据工作负荷或存储器使用不足/过度使用调节GC激进性。举例来说,在较轻工作负荷或存储器使用不足状态的情况下,可执行较激进的GC操作。相比之下,在较重工作负荷或存储器过度使用状态的情况下,可以执行较保守的(例如,较少)GC操作。下文参考图10论述根据主机存取模式调谐GC的实例。
在930处,SLC高速缓冲存储器的可供使用性或SLC高速缓冲存储器大小可以是至少部分地基于主机存取模式经调节的,例如使用SLC高速缓冲存储器控制器618。SLC高速缓冲存储器大小可以是通过重新配置SLC和MLC之间的一或多个存储器单元动态地调谐的。基于主机存取模式,可以确定存储器装置是否是超前、或落后目标使用要求。如果存储器装置超前于目标使用,那么可以维持SLC高速缓冲存储器中的较多空闲块。SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配可以减少。如果存储器装置落后于目标使用,那么维持SLC高速缓冲存储器中的较少空闲块。SLC高速缓冲存储器中的较多存储器单元可以重新分配到MLC存储装置。根据主机存取模式确定的此类动态SLC高速缓冲存储器大小可以帮助确保满足装置寿命要求而没有基本上损害装置性能和用户体验。
图10是说明根据本文档中所论述的一些实例至少基于用户装置存取(例如,主机存取模式)优化存储器装置中的存储器利用率的另一方法900的流程图。方法1000是方法900的实例,且可实施于存储器控制器610或其实施例或变体中,且由存储器控制器610或其实施例或变体执行。
如在图9中,在1010处,可以识别存储器装置的主机存取模式,例如通过工作负荷跟踪器电路614或其变体810。主机存取模式可包含从活跃I/O存取周期和闲置周期导出的统计数据,例如在图7中所说明。借助于实例而非限制,主机存取模式的特征可在于表示单位时间(例如,天、周、月或类似者)中的状态转换的数量的活跃/闲置状态转换频率812、表示单位时间中的活跃周期的数目的活跃状态密度量度814或表示单位时间中的闲置周期的数目的闲置状态密度816中的一个,如图8中所说明。
在1020处,检测到触发事件。触发的出现甚至可触发GC调谐过程(例如,增大或减小GC),和/或SLC高速缓冲存储器与MLC存储装置之间的存储器单元分配(例如,增大或减小SLC高速缓冲存储器大小)。在实例中,触发事件可包含超过年龄阈值(例如,从第一主机写入起3个月)的实际装置年龄。实际装置年龄可以是从存储器装置的第一使用(例如,第一存储器写入)计数的。实际装置年龄可以使用存储器装置的内部振荡器或实时时钟来确定。替代地,可使用实际累计P/E循环来测量实际装置年龄,且触发事件为超过P/E循环阈值(例如,1000个P/E循环)的实际累计P/E循环。在另一实例中,触发事件可包含累计主机写入计数NHost超过物理字节计数阈值,或累计物理写入计数MNAND超过物理字节阈值。使用触发事件来延迟GC过程的调用可改进存储器装置的较早年龄期间的系统性能和用户体验。
如果检测到触发事件,那么在1030处,主机存取模式量度可以与指定的标准相比以识别第一或不同的第二主机存取模式。举例来说,如果转换频率量度高于频率阈值,或者活跃状态密度量度高于密度阈值,或者闲置状态密度量度高于密度阈值,那么存储器装置被确定为落后于目标使用,或者存储器是过度使用的。随后,在1042处,可例如通过减小GC速度、频率、持续时间或作为GC操作的目标的擦除块的数目来减少GC操作。额外地或替代地,在1044处,可减小SLC高速缓冲存储器大小,且可将SLC高速缓冲存储器中的更多的存储器单元重新分配到MLC存储装置。此保守的GC操作和直接MLC的有利使用可减小WA并延长装置寿命以满足所需持久性,而不会实质上损害存储器性能和用户体验。
如果在1030处确定转换频率量度低于频率阈值,或者活跃状态密度量度低于密度阈值,或者闲置状态密度量度低于密度阈值,那么存储器装置被确定为超前目标使用,或者存储器使用不足。随后,在1052处,可例如通过增加GC速度、频率、持续时间或作为GC操作的目标的擦除块的数目来增加GC操作。额外地或替代地,在1054处,可增大SLC高速缓冲存储器大小,且可将SLC高速缓冲存储器中的更少的存储器单元重新分配到MLC存储装置。此激进的GC操作和具有空闲块的大SLC高速缓冲存储器的维护可保证在用户确实使用装置时的最佳存储器性能,且由于指示存储器使用不足的缘故,牺牲装置寿命的风险极小。
图11说明可在其上执行本文中所论述的技术(例如,方法)中的任何一或多个的实例机器1100的框图。在替代实施例中,机器1100可操作为独立装置或可连接(例如,网络连接)到其它机器。在网络连接的部署中,机器1100可在服务器-客户端网络环境中作为服务器机器、客户端机器或这两者操作。在实例中,机器1100可充当对等式(P2P)(或其它分布式)网络环境中的对等式机器。机器1100可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络电器、IoT装置、汽车系统,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅说明了单个机器,但是术语“机器”也将视为包含机器的任何集合,所述机器的任何集合个体地或联合地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多个,例如云计算、软件即服务(SaaS),其它计算机集群配置。
如本文中所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构而操作。电路系统是在包含硬件(例如,简单的电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可随时间推移和基础硬件变化而为灵活的。电路系统包含在操作时可单独或组合地执行特定任务的部件。在实例中,可以不可改变的方式设计电路系统的硬件以执行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集结式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,硬件组成的基础电特性例如从绝缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统的部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于多于一个电路系统中的多于一个部件中。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统的第一电路,且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。
机器(例如,计算机系统)1100(例如,主机装置105、存储器装置110等)可包含硬件处理器1102(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器115等)、主存储器1104和静态存储器1106,其中的一些或全部可经由互连件(例如,总线)1108彼此通信。机器1100可进一步包含显示单元1110、字母数字输入装置1112(例如,键盘)和用户接口(UI)导航装置1114(例如,鼠标)。在实例中,显示单元1110、输入装置1112和UI导航装置1114可以是触摸屏显示器。机器1100可额外包信号产生装置1118(例如,扬声器)、网络接口装置1120,以及一或多个传感器1116,例如全球定位系统(GPS)传感器、指南针、加速计,或其它传感器。机器1100可包含输出控制器1128,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
机器1100可包含机器可读媒体1122,在所述机器可读媒体上存储体现本文中所描述的技术或功能中的任何一或多个或者由本文中所描述的技术或功能中的任何一或多个利用的数据结构或指令1124(例如,软件)的一或多个集合。指令1124还可在其由机器1100执行期间完全或至少部分地驻留于主存储器1104、静态存储器1106或硬件处理器1102内。在实例中,硬件处理器1102、主存储器1104或静态存储器1106中的一个或任何组合可构成机器可读媒体1122。
虽然机器可读媒体1122被说明为单个媒体,但是术语“机器可读媒体”可包含经配置以存储一或多个指令1124的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联的高速缓冲存储器和服务器)。
术语“机器可读媒体”可包含能够存储或编码用于由机器1100执行且使机器1100执行本发明的技术中的任何一或多个的指令,或能够存储、编码或携带由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例包含固态存储器以及光学和磁性媒体。在实例中,大容量机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)的质量。因此,大容量存储器机器可读媒体是非暂时性传播信号。大容量机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。
指令1124(例如,软件、程序、操作系统(OS)等)或其它数据存储在存储装置1121上,可由存储器1104存取以供处理器1102使用。存储器1104(例如,DRAM)通常是快速但易失性的,且因此与存储装置1121(例如,SSD)相比属于不同类型的存储装置,存储装置1121适合于长期存储,包含在“关闭”状况中时的长期存储。供用户或机器1100使用的指令1124或数据通常加载在存储器1104中以供处理器1102使用。在存储器1104满时,存储装置1121的虚拟空间可经分配以补充存储器1104;然而,由于存储装置1121通常比存储器1104慢且写入速度通常比读取速度慢至少两倍,因此归因于存储装置时延(相比于存储器1104,例如DRAM),虚拟存储器的使用可能极大地降低用户体验。此外,用于虚拟存储器的存储装置1121的使用可能会极大地减少存储装置1121的可用使用寿命。
相比于虚拟存储器,虚拟存储器压缩(例如,内核特征“ZRAM”)使用存储器的部分作为压缩块存储以避免寻呼到存储装置1121。在压缩块中进行寻呼,直至有必要将此类数据写入到存储装置1121为止。虚拟存储器压缩增大存储器1104的可用大小,同时减少对存储装置1121的损耗。
针对移动电子装置优化的存储装置或移动存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机装置的数个并行接口(例如,8位并行接口),且通常是从主机装置可移动和分离的组件。相比之下,eMMCTM装置附接到电路板且视为主机装置的组件,其读取速度堪比基于串行ATATM(串行高级技术(AT)附件,或SATA)的SSD装置。然而,对移动装置性能的需求持续增加,以便完全实现虚拟或增强现实装置、利用增加的网络速度等。响应于这种需求,存储装置已从并行转换到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(LVDS)串行接口与主机装置通信,从而进一步推进了更高的读取/写入速度。
可进一步利用数个传送协议中的任一者(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置1120使用传输媒体在通信网络1126上发射或接收指令1124。除其它之外,实例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝式网络)、简易老式电话(POTS)网络和无线数据网络(例如,称为的电气电子工程师学会(IEEE)802.11系列标准、称为的IEEE 802.16系列标准)、IEEE802.15.4系列标准、对等式(P2P)网络。在实例中,网络接口装置1120可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络1126。在实例中,网络接口装置1120可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个无线地通信。术语“发射媒体”应被视为包含能够存储、编码或携带指令以用于由机器1100执行的任何无形媒体,且包含数字或模拟通信信号或用以促进此类软件的通信的其它无形媒体。
以上详细描述包含对随附图式的参考,所述随附图式形成详细描述的部分。所述图式借助于说明示出了其中可实践本发明的特定实施例。这些实施例在本文中也被称作“实例”。此类实例可以包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示出或所描述的那些元件的实例。此外,本发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文中所示出或描述的其它实例(或其一或多个方面)示出或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在此文档中,如专利文档中常见,使用术语“一”以包含一个或多于一个,这独立于“至少一个”或“一或多个”的任何其它例子或使用。在此文档中,除非另外指示,否则术语“或”用于指非排他性的或使得“A或B”可包含“A但不包括B”,“B但不包括A”以及“A和B”。在所附权利要求书中,术语“包含”和“其中(in which)”用作相应的术语“包括”和“其中(wherein)”的通俗等效术语。并且,在所附权利要求书中,术语“包含”和“包括”为开放式的,即,包含除权利要求中此术语之后所列的要素之外的要素的系统、装置、制品或过程仍被认为落在该权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不意图对其对象施加数值要求。
在各种实例中,除其它之外,本文中所描述的组件、控制器、处理器、单元、引擎或表可以包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意味着任何类型的计算电路,例如但不限于,微处理器、微控制器、图形处理器、数字信号处理器(DSP),或任何其它类型的处理器或处理电路,包含处理器或多核心装置的群组。
根据本发明且在本文中描述的各种实施例包含利用存储器单元的竖直结构(例如,存储器单元的NAND串)的存储器。如本文中所使用,将采用相对其上形成有存储单元的衬底的表面的方向性形容词(即,竖直结构将被视为远离衬底表面延伸,竖直结构的底端将被视为最接近衬底表面的端部,且竖直结构的顶端将被视为最远离衬底表面的端部)。
如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于预期状态中的操作在本文中被称作“编程”,且可以包含写入到存储器单元或从存储器单元擦除两者(例如,存储器单元可经编程为擦除状态)。
根据本发明的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调节、计算、改变、清除、传送、调适、导出、限定、利用、修改、施加等)一定数量的损耗循环或损耗状态(例如,记录损耗循环、当其发生时对存储器装置的操作计数、追踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据本发明的一或多个实施例,存储器存取装置可经配置以通过每个存储器操作将损耗循环信息提供给存储器装置。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿对应于损耗循环信息的存储器装置性能改变。存储器装置可接收损耗循环信息并且响应于损耗循环信息而确定一或多个操作参数(例如,值、特性)。
将理解,当一元件被称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在另一元件上、与另一元件直接连接或耦合或可存在介入元件。相比之下,当一元件被称作“直接在另一元件上”、“直接连接到另一元件”或“与另一元件直接耦合”时,不存在介入元件或层。如果两个元件在图式中示出为被线连接,那么除非另外指示,否则所述两个元件可耦合或直接耦合。
本文中所描述的方法实例可以至少部分地由机器或计算机实施。一些实例可以包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以进行如在以上实例中所描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码或类似者。此类代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可移动磁盘、可移动光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置及类似者。
以上描述意图为说明性的而非限制性的。举例来说,上文所描述的实例(或其一或多个方面)可以彼此组合使用。例如一般技术者在查阅以上描述后可使用其它实施例。应理解,所述实施例将不会用于解释或限制权利要求书的范围或含义。而且,在以上具体实施方式中,可将各种特征分组在一起以简化本发明。不应将这一情况解释为意图未要求保护的公开特征对任何权利要求来说是必需的。实际上,本发明主题可以在于比特定所公开的实施例的所有特征要少的特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每个权利要求作为一单独实施例而独立存在,且预期此类实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附权利要求书以及此类权利要求书所授予的等效物的完整范围来确定。
其它注释和实例
实例1是一种存储器装置,其包括存储器单元的群组和存储器控制器。所述存储器控制器包含用户装置存取追踪器电路和垃圾收集(GC)控制器。用户装置存取追踪器电路可经配置以检测期间存储器装置不含通过主机的活跃存取的闲置周期,并且追踪在指定时间窗口期间检测到的闲置周期计数。GC控制器可经配置以根据闲置周期计数调节由存储器单元的一部分上的GC操作释放的存储器空间的量。
在实例2中,根据实例1所述的主题任选地包含GC控制器,所述GC控制器可经配置以:在闲置周期计数低于闲置周期计数阈值时增大由GC操作释放的存储器空间的量,且在闲置周期计数高于闲置周期计数阈值时抑制GC操作或减小由GC操作释放的存储器空间的量。
在实例3中,根据实例1到2中的任何一或多个实例所述的主题任选地包含GC控制器,所述GC控制器可经配置以产生控制信号以在装置存储器中存在可供用于主机写入的存储器空间时起始自行决定的GC操作。
在实例4中,根据实例1到3中的任何一或多个实例所述的主题任选地包含用户装置存取追踪器电路和GC控制器,所述用户装置存取追踪器电路可经配置以在指定时间窗口期间检测活跃主机存取周期,所述GC控制器可经配置以进一步使用检测到的活跃主机存取周期调节由GC操作释放的存储器空间的量。
在实例5中,根据实例4所述的主题任选地包含用户装置存取追踪器电路和GC控制器,所述用户装置存取追踪器电路可经配置以追踪在指定时间窗口期间活跃主机存取周期与闲置周期之间的转换计数,所述GC控制器可经配置以在转换计数低于状态转换计数阈值时增大由GC操作释放的存储器空间的量或在转换计数高于状态转换计数阈值时抑制GC操作或减小由GC操作释放的存储器空间的量。
在实例6中,根据实例1到5中的任何一或多个实例所述的主题任选地包含单层级单元(SLC)高速缓冲存储器控制器,所述单层级单元(SLC)高速缓冲存储器控制器经配置以根据闲置周期计数调节SLC高速缓冲存储器的大小,包含在SLC高速缓冲存储器与多层级单元(MLC)存储装置之间重新分配存储器单元的一部分。
在实例7中,根据实例6所述的主题任选地包含SLC高速缓冲存储器控制器,所述SLC高速缓冲存储器控制器可经配置以在闲置周期计数低于闲置周期计数阈值时增大SLC高速缓冲存储器大小,包含减少SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配,或者在闲置周期计数高于闲置周期计数阈值时减小SLC高速缓冲存储器大小,包含增加SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配。
在实例8中,根据实例6至7中的任何一或多个实例所述的主题任选地包含存储器单元,所述存储器单元分配为可每个存储器单元存储三个或更多个数据位的MLC存储装置。
在实例9中,根据实例1到8中的任何一或多个实例所述的主题任选地包含用户装置存取追踪器电路,所述用户装置存取追踪器电路可经配置以连续地或周期性地追踪闲置周期计数。
在实例10中,根据实例1到9中的任何一或多个实例所述的主题任选地包含GC控制器,所述GC控制器可经配置以在装置闲置状态期间起始或调节GC操作。
在实例11中,根据实例1到10中的任何一或多个实例所述的主题任选地包含GC控制器,所述GC控制器可经配置以响应于触发事件起始GC操作。所述触发事件可包含以下各项中的至少一个:实际装置年龄超过年龄阈值;实际累计主机写入计数超过主机字节计数阈值;或实际累计物理写入计数超过物理字节计数阈值。
在实例12中,根据实例1至11中的任何一或多个实例所述的主题任选地包含存储器装置,所述存储器装置可以是包含NAND快闪存储器的固态驱动器(SSD)装置。
实例13是一种经由存储器控制器优化存储器装置中的存储器利用率的方法。所述方法包括以下步骤:检测期间存储器装置不含通过主机的活跃存取的闲置周期;追踪在指定时间窗口期间检测到的闲置周期计数;以及根据闲置周期计数调节由存储器单元的一部分上的垃圾收集(GC)操作释放的存储器空间的量。
在实例14中,根据实例13所述的主题任选地包含以下步骤:当闲置周期计数低于闲置周期计数阈值时增大由GC操作释放的存储器空间的量,并且当闲置周期计数高于闲置周期计数阈值时抑制GC操作或减小由GC操作释放的存储器空间的量。
在实例15中,根据实例13到14中的任何一或多个实例所述的主题任选地包含以下步骤:在指定时间窗口期间检测活跃主机存取周期且进一步使用检测到的活跃主机存取周期调节由GC操作释放的存储器空间的量。
在实例16中,根据实例15所述的主题任选地包含以下步骤:追踪在指定时间窗口期间活跃主机存取周期与闲置周期之间的转换计数;在转换计数低于状态转换计数阈值时增大由GC操作释放的存储器空间的量,以及在转换计数高于状态转换计数阈值时抑制GC操作或减小由GC操作释放的存储器空间的量。
在实例17中,根据实例13到16中的任何一或多个实例所述的主题任选地包含连续地或周期性地追踪闲置周期计数。
在实例18中,根据实例13到17中的任何一或多个实例所述的主题任选地包含根据闲置周期计数调节单层级单元(SLC)高速缓冲存储器的大小,包含调节存储器单元的一部分在SLC高速缓冲存储器与多层级单元(MLC)存储装置之间的重新分配。
在实例19中,根据实例18所述的主题任选地包含调节SLC高速缓冲存储器大小,其可包含以下步骤:在闲置周期计数低于闲置周期计数阈值时增大SLC高速缓冲存储器大小,包含减少SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配;或在闲置周期计数高于闲置周期计数阈值时减小SLC高速缓冲存储器大小,包含增加SLC高速缓冲存储器中的存储器单元到MLC存储装置的重新分配。
在实例20中,根据实例13到19中的任何一或多个实例所述的主题任选地包含检测触发事件和响应于触发事件的检测起始GC操作。所述触发事件包含以下各项中的至少一个:实际装置年龄超过年龄阈值;实际累计主机写入计数超过主机字节计数阈值;或实际累计物理写入计数超过物理字节计数阈值。
在实例21中,根据实例1到13所述的任一存储器装置可经调适和操作以根据实例14到20的任一方法执行操作。
在实例22中,根据实例1到13所述的任一存储器装置可以并入到电子系统中,所述电子系统进一步包括主机处理器和在主机处理器与存储器装置之间延伸的通信总线。
在实例23中,根据实例1至13所述的任一存储器装置可以进行修改以包含在实例1至13中的另一实例中呈现的任何结构。
在实例24中,根据实例14至20所述的任一方法可以由电子系统执行,所述电子系统包含主机处理器和在主机处理器与存储器装置之间延伸的通信总线。
在实例25中,根据实例14至20所述的任一方法可以进行修改以包含在实例14至20中的任何其它实例中阐述的操作。
在实例26中,根据实例1至13和21至23所述的任一存储器装置可进一步包含机器可读存储装置,所述机器可读存储装置经配置以将指令存储为物理状态,其中所述指令可用于执行所述存储器装置的一或多个操作。
在实例27中,根据实例14到20、24和25所述的任一方法可以至少部分地通过使用在一或多个机器可读存储装置中存储为物理状态的指令来实施。
Claims (20)
1.一种存储器装置,其包括:
存储器单元的群组;以及
存储器控制器,其包含:
用户装置存取追踪器电路,其经配置以检测期间所述存储器装置不含通过主机进行的活跃存取的闲置周期,并且追踪在指定时间窗口期间检测到的闲置周期计数;以及
垃圾收集GC控制器,其经配置以根据所述闲置周期计数调节由所述存储器单元的一部分上的GC操作释放的存储器空间的量。
2.根据权利要求1所述的存储器装置,其中所述GC控制器经配置以:
在所述闲置周期计数低于闲置周期计数阈值时增大由GC操作释放的存储器空间的所述量;以及
在所述闲置周期计数高于所述闲置周期计数阈值时抑制所述GC操作或减小由GC操作释放的存储器空间的所述量。
3.根据权利要求1或2所述的存储器装置,其中所述GC控制器经配置以在所述装置存储器中存在可供用于主机写入的空闲存储器空间时产生控制信号来起始自行决定的GC操作。
4.根据权利要求1或2所述的存储器装置,其中:
所述用户装置存取追踪器电路进一步经配置以在所述指定时间窗口期间检测活跃主机存取周期;以及
所述GC控制器经配置以进一步使用所述检测到的活跃主机存取周期调节由GC操作释放的存储器空间的量。
5.根据权利要求4所述的存储器装置,其中:
所述用户装置存取追踪器电路经配置以追踪在所述指定时间窗口期间所述活跃主机存取周期与所述闲置周期之间的转换计数;以及
所述GC控制器经配置以在所述转换计数低于状态转换计数阈值时增大由GC操作释放的存储器空间的所述量,并在所述转换计数高于所述状态转换计数阈值时抑制所述GC操作或减小由GC操作释放的存储器空间的所述量。
6.根据权利要求1或2所述的存储器装置,其进一步包括单层级单元SLC高速缓冲存储器控制器,其经配置以根据所述闲置周期计数调节SLC高速缓冲存储器的大小,包含在所述SLC高速缓冲存储器与多层级单元MLC存储装置之间重新分配所述存储器单元的一部分。
7.根据权利要求6所述的存储器装置,其中所述SLC高速缓冲控制器控制器经配置以:
在所述闲置周期计数低于闲置周期计数阈值时增大所述SLC高速缓冲存储器大小,包含减少所述SLC高速缓冲存储器中的存储器单元到所述MLC存储装置的所述重新分配;或者
在所述闲置周期计数高于闲置周期计数阈值时减小所述SLC高速缓冲存储器大小,包含增加所述SLC高速缓冲存储器中的存储器单元到所述MLC存储装置的所述重新分配。
8.根据权利要求6所述的存储器装置,其中分配为所述MLC存储装置的所述存储器单元存储每存储器单元三个或更多个数据位。
9.根据权利要求1或2所述的存储器装置,其中所述用户装置存取追踪器电路经配置以连续地或周期性地追踪所述闲置周期计数。
10.根据权利要求1或2所述的存储器装置,其中所述GC控制器经配置以在装置闲置状态期间起始或调节所述GC操作。
11.根据权利要求1或2所述的存储器装置,其中所述GC控制器经配置以响应于触发事件而起始GC操作,所述触发事件包含以下中的至少一个:
实际装置年龄超过年龄阈值;
实际累计主机写入计数超过主机字节计数阈值;或者
实际累计物理写入计数超过物理字节计数阈值。
12.根据权利要求1或2所述的存储器装置,其中所述存储器装置是包含NAND快闪存储器的固态驱动器SSD装置。
13.一种经由存储器控制器优化存储器装置中的存储器利用率的方法,所述方法包括:
检测期间所述存储器装置不含通过主机进行的活跃存取的闲置周期;
追踪在指定时间窗口期间检测到的闲置周期计数;以及
根据所述闲置周期计数调节由所述存储器单元的一部分上的垃圾收集GC操作释放的存储器空间的量。
14.根据权利要求13所述的方法,其包括:
在所述闲置周期计数低于闲置周期计数阈值时增大由GC操作释放的存储器空间的所述量;或者
在所述闲置周期计数高于所述闲置周期计数阈值时抑制所述GC操作或减小由GC操作释放的存储器空间的所述量。
15.根据权利要求13或14所述的方法,其包括:
在所述指定时间窗口期间检测活跃主机存取周期;以及
进一步使用所述检测到的活跃主机存取周期调节由GC操作释放的存储器空间的量。
16.根据权利要求15所述的方法,其包括:
追踪在所述指定时间窗口期间所述活跃主机存取周期与所述闲置周期之间的转换计数;以及
在所述转换计数低于状态转换计数阈值时增大由GC操作释放的存储器空间的所述量,并在所述转换计数高于所述状态转换计数阈值时抑制所述GC操作或减小由GC操作释放的存储器空间的所述量。
17.根据权利要求13或14所述的方法,其中所述追踪所述闲置周期计数是连续地或周期性地执行的。
18.根据权利要求13或14所述的方法,其包括根据所述闲置周期计数调节单层级单元SLC高速缓冲存储器的大小,包含调节所述存储器单元的一部分在所述SLC高速缓冲存储器与多层级单元MLC存储装置之间的重新分配。
19.根据权利要求18所述的方法,其中调节所述SLC高速缓冲存储器大小包含:
在所述闲置周期计数低于闲置周期计数阈值时增大所述SLC高速缓冲存储器大小,包含减少所述SLC高速缓冲存储器中的存储器单元到所述MLC存储装置的所述重新分配;或者
在所述闲置周期计数高于闲置周期计数阈值时减小所述SLC高速缓冲存储器大小,包含增加所述SLC高速缓冲存储器中的存储器单元到所述MLC存储装置的所述重新分配。
20.根据权利要求13或14所述的方法,其包括检测触发事件,且响应于所述触发事件的所述检测而起始GC操作,所述触发事件包含以下中的至少一个:
实际装置年龄超过年龄阈值;
实际累计主机写入计数超过主机字节计数阈值;或者
实际累计物理写入计数超过物理字节计数阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/445,816 | 2019-06-19 | ||
US16/445,816 US10877882B1 (en) | 2019-06-19 | 2019-06-19 | Garbage collection adapted to user device access |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115071A true CN112115071A (zh) | 2020-12-22 |
CN112115071B CN112115071B (zh) | 2022-05-13 |
Family
ID=73799491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010564696.6A Active CN112115071B (zh) | 2019-06-19 | 2020-06-19 | 适用于用户装置存取的垃圾收集 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10877882B1 (zh) |
CN (1) | CN112115071B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11561892B2 (en) | 2019-06-19 | 2023-01-24 | Micron Technology, Inc. | Garbage collection adapted to user device access |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593262B1 (en) * | 2018-04-25 | 2023-02-28 | Seagate Technology Llc | Garbage collection command scheduling |
US11099758B2 (en) * | 2019-07-16 | 2021-08-24 | Facebook Technologies, Llc | Memory management of computing devices |
US11126360B2 (en) * | 2019-10-22 | 2021-09-21 | International Business Machines Corporation | Dynamically adjusting block mode pool sizes |
KR20210065356A (ko) * | 2019-11-27 | 2021-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
US11288186B2 (en) * | 2020-04-23 | 2022-03-29 | Netapp, Inc. | Adjustment of garbage collection parameters in a storage system |
US11262928B2 (en) * | 2020-06-12 | 2022-03-01 | Western Digital Technologies, Inc. | Storage system and method for enabling partial defragmentation prior to reading in burst mode |
DE102020123220A1 (de) * | 2020-09-04 | 2022-03-10 | Harman Becker Automotive Systems Gmbh | Speichersystem, Verfahren zum Betrieb desselben |
US11520500B2 (en) | 2021-03-19 | 2022-12-06 | Micron Technology, Inc. | Managing capacity reduction when downshifting multi-level memory cells |
US11892909B2 (en) | 2021-03-19 | 2024-02-06 | Micron Technology, Inc. | Managing capacity reduction due to storage device failure |
US11520656B2 (en) | 2021-03-19 | 2022-12-06 | Micron Technology, Inc. | Managing capacity reduction and recovery due to storage device failure |
US11733884B2 (en) * | 2021-03-19 | 2023-08-22 | Micron Technology, Inc. | Managing storage reduction and reuse with failing multi-level memory cells |
US11650881B2 (en) | 2021-03-19 | 2023-05-16 | Micron Technology, Inc. | Managing storage reduction and reuse in the presence of storage device failures |
US11625189B2 (en) * | 2021-06-28 | 2023-04-11 | Western Digital Technologies, Inc. | Systems and methods for fragmentation management in host buffers |
US20230145784A1 (en) * | 2021-11-08 | 2023-05-11 | Netapp, Inc. | Combined garbage collection and data integrity checking for a distributed key-value store |
US11934280B2 (en) | 2021-11-16 | 2024-03-19 | Netapp, Inc. | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363403B1 (en) * | 1999-06-30 | 2002-03-26 | Lucent Technologies Inc. | Garbage collection in object oriented databases using transactional cyclic reference counting |
CN104346291A (zh) * | 2013-08-05 | 2015-02-11 | 炬芯(珠海)科技有限公司 | 一种存储器的存储方法及存储系统 |
CN106990926A (zh) * | 2017-06-14 | 2017-07-28 | 郑州云海信息技术有限公司 | 一种固态硬盘磨损均衡的处理方法 |
US10157127B2 (en) * | 2016-12-05 | 2018-12-18 | SK Hynix Inc. | Data storage device and method including selecting a number of victim memory regions for garbage collection based on erase counts and the number of candidate memory regions |
CN109408410A (zh) * | 2018-11-13 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种固态硬盘垃圾回收的仲裁方法、装置及存储介质 |
WO2019046020A1 (en) * | 2017-08-31 | 2019-03-07 | Micron Technology, Inc. | MEMORY DEVICE HAVING DYNAMIC CACHE MANAGEMENT |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484067B1 (en) * | 2004-05-24 | 2009-01-27 | Sun Microsystems, Inc. | System and method for ensuring non-interfering garbage collection in a real time multi-threaded environment |
US8171228B2 (en) * | 2009-11-12 | 2012-05-01 | Oracle International Corporation | Garbage collection in a cache with reduced complexity |
US9652382B1 (en) | 2014-09-04 | 2017-05-16 | Sk Hynix Memory Solutions Inc. | Look-ahead garbage collection for NAND flash based storage |
US9740437B2 (en) | 2015-03-27 | 2017-08-22 | Intel Corporation | Mechanism to adapt garbage collection resource allocation in a solid state drive |
US20160350214A1 (en) * | 2015-05-29 | 2016-12-01 | Google Inc. | Idle time software garbage collection |
US9842060B1 (en) | 2016-07-13 | 2017-12-12 | Seagate Technology Llc | Cache over-provisioning in a data storage device |
US10339983B1 (en) * | 2017-12-29 | 2019-07-02 | Micron Technology, Inc. | Temperature-based memory operations |
US10877882B1 (en) | 2019-06-19 | 2020-12-29 | Micron Technology, Inc. | Garbage collection adapted to user device access |
-
2019
- 2019-06-19 US US16/445,816 patent/US10877882B1/en active Active
-
2020
- 2020-06-19 CN CN202010564696.6A patent/CN112115071B/zh active Active
- 2020-12-10 US US17/118,152 patent/US11561892B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363403B1 (en) * | 1999-06-30 | 2002-03-26 | Lucent Technologies Inc. | Garbage collection in object oriented databases using transactional cyclic reference counting |
CN104346291A (zh) * | 2013-08-05 | 2015-02-11 | 炬芯(珠海)科技有限公司 | 一种存储器的存储方法及存储系统 |
US10157127B2 (en) * | 2016-12-05 | 2018-12-18 | SK Hynix Inc. | Data storage device and method including selecting a number of victim memory regions for garbage collection based on erase counts and the number of candidate memory regions |
CN106990926A (zh) * | 2017-06-14 | 2017-07-28 | 郑州云海信息技术有限公司 | 一种固态硬盘磨损均衡的处理方法 |
WO2019046020A1 (en) * | 2017-08-31 | 2019-03-07 | Micron Technology, Inc. | MEMORY DEVICE HAVING DYNAMIC CACHE MANAGEMENT |
CN109408410A (zh) * | 2018-11-13 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种固态硬盘垃圾回收的仲裁方法、装置及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11561892B2 (en) | 2019-06-19 | 2023-01-24 | Micron Technology, Inc. | Garbage collection adapted to user device access |
Also Published As
Publication number | Publication date |
---|---|
US11561892B2 (en) | 2023-01-24 |
CN112115071B (zh) | 2022-05-13 |
US20200401515A1 (en) | 2020-12-24 |
US10877882B1 (en) | 2020-12-29 |
US20210089444A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112115071B (zh) | 适用于用户装置存取的垃圾收集 | |
US11625176B2 (en) | Managed NVM adaptive cache management | |
CN112115069B (zh) | 适于主机写入活动的垃圾收集 | |
US11693769B2 (en) | Garbage collection adapted to memory device life expectancy | |
US11726919B2 (en) | Dynamic L2P cache | |
US11720489B2 (en) | Scheme to improve efficiency of device garbage collection in memory devices | |
WO2019046386A1 (en) | SLC CACHE MANAGEMENT | |
US20210157501A1 (en) | Common pool management | |
CN113168377A (zh) | Slc高速缓存分配 | |
CN112041931A (zh) | 跟踪逻辑块地址的数据温度 | |
CN112214422A (zh) | 静态slc高速缓存的动态大小 | |
WO2021035551A1 (en) | Write buffer control in managed memory system | |
CN109427407B (zh) | 用于存储连接资源的分配的装置、方法和系统以及机器可读媒体 | |
WO2020076560A1 (en) | Reactive read based on metrics to screen defect prone memory blocks |
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 |