CN112463648A - 经动态调整废料收集工作量 - Google Patents
经动态调整废料收集工作量 Download PDFInfo
- Publication number
- CN112463648A CN112463648A CN202010928134.5A CN202010928134A CN112463648A CN 112463648 A CN112463648 A CN 112463648A CN 202010928134 A CN202010928134 A CN 202010928134A CN 112463648 A CN112463648 A CN 112463648A
- Authority
- CN
- China
- Prior art keywords
- idle
- idle time
- memory
- garbage collection
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000003860 storage Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 31
- 238000000638 solvent extraction Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 description 141
- 230000003321 amplification Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 238000003199 nucleic acid amplification method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及经动态调整废料收集工作量。本文中描述用于动态调整废料收集工作量的装置及技术。举例来说,可记录存储器装置闲置时间。可从这些记录的闲置时间导出度量。当前废料收集工作量可基于所述度量分割成几个部分。接着,可在下一闲置时间执行所述经分割废料收集工作量的第一部分。
Description
技术领域
本申请涉及存储器装置,且特定来说,涉及经动态调整废料收集工作量。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。
易失性存储器需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)等。
非易失性存储器可在未供电时保存所存储数据,且包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻性随机存取存储器(RRAM)或磁阻性随机存取存储器(MRAM)等。
废料收集是其中移除无效数据片段以释放保存无效数据片段的硬件用于新数据的过程。在具有NAND存储阵列的存储器装置中,废料收集通常涉及将擦除片段(可被擦除的单元,例如块)中的有效(例如,良好)数据复制到新位置及擦除所述擦除片段。一旦被擦除,则擦除片段可用于新数据。因此,废料收集在维持NAND存储器阵列上的自由空间中发挥重要作用。
发明内容
一方面,本申请提供一种用于实施经动态调整废料收集工作量的存储器装置,所述存储器装置包括:处理电路***;及存储装置,其包含指令,所述指令在由所述处理电路***执行时配置所述处理电路***以:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
另一方面,本申请提供一种用于经动态调整废料收集工作量的方法,所述方法包括:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
另一方面,本申请提供一种机器可读媒体,其包含用于实施经动态调整废料收集工作量的指令,所述指令在由处理电路***执行时引起所述处理电路***执行包括以下各者的操作:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
附图说明
在不一定按比例绘制的图式中,相同数字可描述不同视图中的类似组件。具有不同字母后缀的相同数字可表示类似组件的不同例子。图式通常通过实例而非限制来说明本发明中所论述的各个实施例。
图1说明包含存储器装置的环境的实例。
图2说明高稳态装置工作量的实例。
图3说明突发装置工作量的实例。
图4说明用于动态调整废料收集工作量的方法的实例的流程图。
图5是说明其上可实施一或多个实施例的机器的实例的框图。
具体实施方式
废料收集不是没有成本的。举例来说,因为废料收集涉及从一个片段读取有效数据及将其写入到另一片段,所以废料收集会消耗存储器装置资源,例如电力、内部连接资源及控制器时间。因此,如果与来自主机的请求同时进行,那么废料收集会影响用户体验(例如,因增加写入时间)。此外,与废料收集相关联的额外写入(称为写入放大)会影响存储器阵列的寿命。这是因为NAND胞元经历随写入的物理变化,其中典型NAND胞元在其不再有效使用之前具有有限次数的总写入。当写入放大较高时,NAND胞元上的此耗损加速。
一些基于NAND的存储器装置使用SLC高速缓存来加速主机写入。由于SLC写入对MLC写入的相对较快吞吐量,所以此可为有益的。举例来说,SLC片段可支持500兆位/秒(MB/s)写入对TLC片段的150MB/s吞吐量。通常,主机写入首先被写入到SLC高速缓存且接着迁移到NAND阵列中的更密集编码胞元。废料收集周期性释放已被迁移的SLC高速缓存胞元以实现额外快速主机写入。因此,使用SLC高速缓存通常提供好得多的用户体验,只要付得起废料收集之价格。然而,当写入工作量时常超过SLC高速缓存时,一点好处都没有且可能会是个问题。在此因需要清除高速缓存而导致性能损失(例如,减少高速缓存的益处),且用于将主机数据从SLC高速缓存复制到更密集编码胞元的额外写入放大影响存储器装置的寿命。
两种不同类型的工作量在NAND装置(包含具有SLC高速缓存的NAND装置)中可具有冲突优化参数:持续工作量及突发工作量。持续工作量可包含其中传送大量数据(例如,大于SLC高速缓存(如果存在))的读取或写入的高工作量队列深度。有时,持续工作量是主机性能测试机制的部分。通常在频繁进入低功率模式的装置(例如移动电话、IoT传感器等)中经历的突发工作量通常具有几小段重度到中度队列深度(当唤醒及使用装置时)及接着成比例的长闲置时间周期。
在废料收集的上下文中,这两种不同工作量类型会面临一些挑战。举例来说,为了减小写入放大,在突发工作量案例中等待废料收集可为有益的,因为长闲置周期可实现有效数据的单次复制而非有效数据的多次复制。然而,在持续工作量中,不可能存在此一大闲置周期来完成废料收集。在此案例中,NAND阵列会用完空闲块,或主机写入可经暂停以使废料收集能够完成。这些结果中的任一者会不利地影响使用存储器装置时的用户体验。
上述问题可由经动态调整废料收集工作量解决。在此,目标是最小化运行废料收集的次数(例如,以减小写入放大)同时试图仅在闲置周期期间执行废料收集(例如,以减小废料收集对用户体验的影响)。因为通常不存在关于存储器装置是经受持续工作量还是经受突发工作量的显式信令,所以废料收集工作量的自动执行部分的大小是基于观测到的闲置周期来动态调整的。因此,具有长闲置周期的突发工作量导致大废料收集工作量部分,而具有通常小闲置周期的持续工作量导致小废料收集部分。一旦分配了废料收集工作量,则其原子碎片在出现闲置时间时自我执行。
使用此技术,废料收集工作量的任何给定部分可能会在下一闲置时间内完成,这减小废料收集操作对用户体验的影响。此外,通过可能消耗整个闲置周期,废料收集部分的每一执行可最大化闲置周期以减小废料收集执行的总次数,借此减小写入放大。下文提供额外实例及细节。
为了提供本文中描述的存储器装置废料收集***及技术的上下文,以下元件可为有用的。存储器装置包含个别存储器裸片,其可(例如)包含一或多个存储器胞元阵列以实施一(或多个)所选择的存储技术的存储区。此存储器裸片通常将包含用于操作存储器阵列的支持电路***。其它实例(有时通常称为“管理型存储器装置”)包含与经配置以控制一或多个存储器裸片的操作的控制器功能性相关联的一或多个存储器裸片的组合件。此控制器功能性可简化与外部装置(作为“主机”,如本文中稍后论述)的互操作性。在此类管理型存储器装置中,控制器功能性可经实施于也并入存储器阵列的一或多个裸片上,或经实施于单独裸片上。在其它实例中,一或多个存储器装置可与控制器功能性组合以形成固态驱动(SSD)存储体。
在实施NAND快闪存储器胞元的管理型存储器装置(称为“管理型NAND”装置)的实例中描述本发明的实施例。然而,这些实例不限制本发明的范围,其可经实施于其它形式的存储器装置中及/或使用其它形式的存储技术实施。
NOR或NAND架构半导体存储器阵列中的每一快闪存储器胞元可经个别或共同编程到一个或数个编程状态。举例来说,单层胞元(SLC)可表示两个编程状态(例如1或0)中的一者,表示一个数据位。快闪存储器胞元还可表示两个以上编程状态,从而允许在不增加存储器胞元的数目的情况下制造更高密度存储器,因为每一胞元可表示一个以上二进制数(例如一个以上位)。此类胞元可称为多状态存储器胞元、多数字胞元或多层胞元(MLC)。在特定实例中,MLC可指代每胞元可存储两个数据位(例如四个编程状态中的一者)的存储器胞元,三层胞元(TLC)可指代每胞元可存储三个数据位(例如八个编程状态中的一者)的存储器胞元,且四层胞元(QLC)可每胞元存储四个数据位。MLC在本文中以其更广泛上下文使用于指代每胞元可存储一个以上数据位(即,可表示两个以上编程状态)的任何存储器胞元。
管理型存储器装置可根据公认行业标准来配置及操作。举例来说,管理型NAND装置可为(作为非限制性实例)通用快闪存储(UFSTM)装置或嵌入式MMC装置(eMMCTM)等。举例来说,在上述实例的情况中,UFS装置可根据联合电子装置工程委员会(JEDEC)标准(例如标题为JEDEC UFS快闪存储装置3.0(JEDEC UFS Flash Storage 3.0)等的JEDEC标准JESD223D及/或此标准的更新或后续版本)来配置。类似地,识别的eMMC装置也可根据标题为“JEDEC eMMC标准5.1(JEDEC eMMC standard 5.1)”的JEDEC标准JESD84-A51及/或此标准的更新或后续版本来配置。
SSD尤其可用作在例如性能、大小、重量、耐久性、操作温度范围及功耗方面优于具有移动零件的传统硬盘的计算机的主存储装置。举例来说,SSD可具有与磁盘驱动相关联的减少搜索时间、延时或其它延迟(例如机电的等)。SSD使用非易失性存储器胞元(例如快闪存储器胞元)来消除内部电池供应要求,从而允许驱动更多功能及紧凑。管理型存储器装置(例如管理型NAND装置)可用作各种形式的电子装置中的主或辅助存储器,且常用于移动装置中。
SSD及管理型存储器装置两者可包含数个存储器装置(包含数个裸片或逻辑单元(例如逻辑单元号或LUN)),且可包含执行操作存储器装置或与外部***介接所需的逻辑功能的一或多个处理器或其它控制器。此类SSD及管理型存储器装置可包含一或多个快闪存储器裸片,其包含数个存储器阵列及其上的***电路***。快闪存储器阵列可包含组织成数个物理页的数个存储器胞元块。在一些实例中,SSD还可包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。类似地,管理型NAND装置可包含与NAND存储阵列分离且在控制器内或与控制器分离的一或多个易失性及/或非易失性存储器阵列。SSD及管理型NAND装置两者可从主机接收与存储器操作相关联的命令,所述存储器操作例如为在存储器装置与主机之间传送数据(例如用户数据及相关联完整性数据,例如错误数据及地址数据等)的读取或写入操作或从存储器装置擦除数据的擦除操作。
图1说明包含经配置以经由通信接口通信的主机装置105及存储器装置110的环境100的实例。主机装置105或存储器装置110可包含于各种产品150(例如物联网(IoT)装置(例如冰箱或其它设备、传感器、电动机或致动器、移动通信装置、汽车、无人机等))中以支持产品150的处理、通信或控制。图2提供更多针对使用SLC编码的可调整NAND写入性能的细节。
存储器装置110包含存储器控制器115及存储器阵列120,存储器阵列120包含(例如)数个个别存储器裸片(例如三维(3D)NAND裸片的堆叠)。在3D架构半导体存储器技术中,堆叠垂直结构以增加层、物理页的数目且相应地提高存储器装置(例如存储装置)的密度。在实例中,存储器装置110可为离散存储器或主机装置105的存储装置组件。在其它实例中,存储器装置110可为与主机装置105的一或多个其它组件堆叠或以其它方式一起包含的集成电路的一部分(例如单芯片***(SOC)等)。在这些实例中,存储器装置110经由互连111(例如总线)与主机装置105组件通信。因此,如本文中描述,主机或主机装置105操作与存储器装置110的操作不同,即使存储器装置110被集成到主机装置105中。
一或多个通信接口(例如互连111)可用于在存储器装置110与主机装置105的一或多个其它组件之间传送数据,例如串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口或一或多个其它连接器或接口。主机装置105可包含主机***、电子装置、处理器、存储器卡读取器或存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参考图5的机器500论述的组件的某部分或全部的机器。
存储器控制器115可从主机105接收指令,且可与存储器阵列120通信以(例如)传送(例如,写入或擦除)数据到存储器阵列120的存储器胞元、平面、子块、块或页中的一或多者或从存储器阵列120的存储器胞元、平面、子块、块或页中的一或多者传送(例如,读取)数据。存储器控制器115可尤其包含电路***或固件(包含一或多个组件或集成电路)。举例来说,存储器控制器115可包含经配置以控制跨存储器阵列120的存取及提供主机105与存储器装置110之间的转译层的一或多个存储器控制单元、电路或组件。尽管在此将存储器控制器115说明为存储器装置110封装的部分,但可采用其它配置,例如存储器控制器115是主机105的组件(例如,作为与存储器服务110分离的主机105的单芯片***上的离散封装),或甚至经由主机105的中央处理单元(CPU)来实施。
存储器管理器125可尤其包含电路***或固件,例如与各种存储器管理功能相关联的数个组件或集成电路。为了本发明,实例存储器操作及管理功能将在NAND存储器的上下文中描述。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似存储器操作或管理功能。此类NAND管理功能包含损耗均衡、废料收集、废物回收、错误检测或校正、块引退(retirement)或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如从主机接收的命令)剖析或格式化成装置命令(例如与存储器阵列120的操作相关联的命令等),或产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以完成各种存储器管理功能)。
如上文提及,存储器管理器125可负责废料收集。为了实施动态废料收集工作量,存储器管理器125经配置以记录存储器装置110的闲置时间。在实例中,闲置时间是超过其中存储器控制器115的命令队列是空的阈值的任何时间。在实例中,阈值是10毫秒。其它闲置触发可包含命令队列具有少于阈值数目个命令或少于被读取或写入的阈值数据量。
在实例中,为了记录闲置时间,存储器管理器125经配置以维持其中条目包含闲置时间的持续时间的数据结构(例如日志)。在实例中,条目还包含其中记录闲置时间的时间或日期。记录时间或日期可使分析能够预测闲置周期,这可有助于废料收集工作量分区或定序,如下文提及。
存储器管理器125经配置以从所记录的闲置时间导出度量。在实例中,度量是闲置持续时间平均值。在实例中,平均值是按条目的使用年限加权的加权平均值。在实例中,加权平均值计算如下:
其中n是所考虑的闲置时间数目且L是闲置时间的长度。举例来说,如果闲置记录具有10个条目L1、L2、...、L10,其中L1是最近条目,那么通过计算加权。此加权可直接用于通过(例如)使加权乘以要做的可用废料收集工作以选择在下一闲置周期期间要做的工作量来使废料收集工作量分区。
在实例中,包含最后一闲置时间的所有闲置时间的连续子集用于导出度量。在此,子集表示其中不考虑较旧闲置时间条目的滑动窗。此能够通过“忘记”窗外的闲置周期特性来有效管理工作量类型的变化(例如,从持续到突发)。
在实例中,作为导出度量的部分,计算存储器装置的闲置时间与被占时间之间的比率。此比率可帮助确定当前工作量是更接近类似于突发类型工作量还是持续类型工作量。当闲置时间与被占时间之比率较高时,存储器装置110可能经历突发工作量。当比率较低时,其更可能是持续工作量。
在实例中,作为导出度量的部分,计算闲置率。在实例中,从存储器装置的输入-输出事件计数器确定闲置率。闲置率与上文论述的闲置时间比的相似之处在于:其以闲置模式的方面为特征。因此,如果闲置率较高,那么存在更多机会执行废料收集工作量。然而,如上文提及,通常不期望在每次闲置周期发生时运行废料收集,因为此会增加写入放大。
存储器管理器125经配置以基于度量将当前废料收集工作量分割成几个部分。在此,废料收集工作量是用于释放存储器阵列120中的空间的操作的测量或估计。废料收集工作量的分割牵涉将这些操作分割成几个群组,其中每次(例如,串行地或并行地)执行一群组中的操作。
在实例中,并非废料收集工作量内的所有操作对平衡写入放大的减小、减小对用户体验的影响及释放存储器阵列120上的空间同等有效的。举例来说,释放SLC高速缓存的操作可对提高主机105写入性能具有较大影响。因此,在实例中,废料收集工作量的部分经排序使得写入高速缓存(例如SLC高速缓存)的废料收集被优先处理。也可使用其它排序以例如最大化自由空间、最小化写入放大等。
存储器管理器125经配置以在下一闲置时间执行废料收集工作量的部分的第一部分。当使部分定序时,第一部分表示在所使用的定序中具有最高值的废料收集操作。以此方式,首先执行最有效废料收集操作。在实例中,使部分随机化,第一部分是第一随机选择部分。在此,当不存在明确优先的废料收集操作(例如,这是未知的或其全都是相等给定已知信息)时,随机化可防止可能发生的算术问题。
在实例中,存储器管理器125经配置以在执行第一部分之前基于度量来验证其超过阈值。因此,如果废料收集部分未超过阈值,那么不会执行所述部分。此解决了在闲置周期较小时可能发生的问题。在此,废料收集工作量的分割可导致如此小的部分,运行工作量的效果相对于释放空间来说可忽略(例如,其等同于根本不运行工作量)且要消耗太多时间或电力来完成。通过使用此阈值,存储器管理器125可确定是否跳过执行工作量部分以提供存储器装置110的更佳整体性能。存储器装置110是经历突发还是持续工作量的上述确定可用于建立阈值。举例来说,如果存储器装置110经历持续工作量,那么可容忍较小部分,因为其可能将延长可在中断执行必要废料收集之前处理持续工作量的时间量。相比而言,在突发工作量期间,可能接近延长闲置周期,其中新分配的废料收集任务将导致更有效废料收集执行。闲置与被占时间之比率及闲置周期的频率两者可用于作出此评估及调整阈值。
本文中描述的动态废料收集工作量技术提供相较于其它方法的数个优点。举例来说,传统废料收集通常仅在闲置周期或在自由空间下降到低于阈值时执行固定数目个操作。第一方法可能未充分利用长闲置周期且影响短闲置周期期间的用户体验。此外,如果按进度表运行,那么写入放大会是一个问题。其它方法(例如映射活动频率以预测未来闲置周期)可能需要大量运算且仍无法适当解决适合闲置周期的现实工作量。代替地,闲置周期平均技术提供高效运算方式来最大化仍适合可能闲置周期的工作量。
时间窗或加权技术实现监测及废料收集工作量分割能力以根据变化工作量动态调整,例如从持续到突发工作量或再次返回。举例来说,如果闲置时间较短,那么存储器装置110可能由基准、恢复、流媒体等大量使用(例如持续工作量)。在此,最好抑制废料收集以限制其对装置性能的影响,从而实现更佳用户体验且减小对较重工作量的影响。实现此的原因是加权函数由于小闲置周期而产生小值,从而导致小废料收集工作量部分。然而,如果闲置时间较大,那么存储器装置110不会被大量使用(例如突发工作量)。在此情况中,在闲置周期期间适当进行大量废料收集工作,因为其不会干扰用户体验。在SLC高速缓存架构的情况中,大废料收集部分可清除大部分或全部SLC高速缓存以在下一突发实现最高用户性能。
存储器管理器125可包含经配置以维持与存储器装置110的一或多个组件相关联的各种信息(例如与耦合到存储器控制器115的存储器阵列或一或多个存储器胞元相关联的各种信息)的一组管理表130。举例来说,管理表130可包含关于耦合到存储器控制器115的存储器胞元的一或多个块的块使用年限、块擦除计数、错误历史或一或多个错误计数(例如写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在特定实例中,如果错误计数中的一或多者的检测到的错误的数目高于阈值,那么位错误可被称为不可校正位错误。管理表130尤其可维持可校正或不可校正位错误的计数。在实例中,管理表130可包含转译表或逻辑到物理(L2P)映射。
阵列控制器135可尤其包含经配置以控制与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器胞元、从所述一或多个存储器胞元读取数据或擦除所述一或多个存储器胞元相关联的存储器操作的电路***或组件。存储器操作可基于(例如)从主机105接收或由存储器管理器125内部产生的主机命令(例如,与损耗均衡、错误检测或校正等相关联)。
阵列控制器135可包含错误校正码(ECC)组件140,其可尤其包含经配置以检测或校正与将数据写入到耦合到存储器控制器115的存储器装置110的一或多个存储器胞元或从所述一或多个存储器胞元读取数据相关联的错误的ECC引擎或其它电路***。存储器控制器115可经配置以基于由阵列控制器135维持的ECC数据来主动检测与数据的各种操作或存储相关联的错误发生(例如位错误、操作错误等)及从所述错误发生恢复。此使存储器控制器115能够维持在主机105与存储器装置110之间传送的数据的完整性或维持所存储数据的完整性。此完整性维持的部分可包含移除(例如,引退)失效存储器资源(例如存储器胞元、存储器阵列、页、块等)以防止未来错误。RAIN是可由存储器装置110用于维持数据完整性的另一技术。阵列控制器135可经布置以在阵列120中实施RAIN奇偶校验数据产生及存储。存储器控制器115可涉及使用奇偶校验数据来重建受损数据。
存储器阵列120可包含布置成(例如)装置、平面、子块、块或页的数个存储器胞元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592个数据字节(B)(16,384+2208个字节)、每块1536页、每平面548个块及每装置4个或4个以上平面。作为另一实例,32GBMLC存储器装置(每胞元存储两个数据位(即,4个可编程状态))可包含每页18,592个数据字节(B)(16,384+2208个字节)、每块1024页、每平面548个块及每装置4个平面,但具有对应TLC存储器装置的一半所需写入时间及两倍编程/擦除(P/E)循环。其它实例可包含其它数目或布置。在一些实例中,存储器装置或其一部分可选择性在SLC模式或在所要MLC模式(例如TLC、QLC等)中操作。
在操作中,数据通常以页写入到NAND存储器装置110或从NAND存储器装置110读取且以块擦除。然而,可视需要对较大或较小群组的存储器胞元执行一或多个存储器操作(例如读取、写入、擦除等)。NAND存储器装置110的数据传送大小通常被称为页,而主机的数据传送大小通常被称为扇区。
尽管一页数据可包含用户数据(例如包含数个数据扇区的数据有效负载)及其对应元数据的数个字节,但页的大小通常仅指代用于存储用户数据的字节的数目。作为实例,具有4KB的页大小的一页数据可包含4KB的用户数据(例如呈现512B的扇区大小的8个扇区)及对应于用户数据的数个字节(例如32B、54B、224B等)的元数据,例如完整性数据(例如错误检测或校正码数据)、地址数据(例如逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器胞元或存储器阵列120可提供不同页大小或需要与其相关联的不同量的元数据。例如,不同存储器装置类型可具有不同位错误率,此可导致确保数据页的完整性所需的不同量的元数据(例如,具有较高位错误率的存储器装置需要比具有较低位错误率的存储器装置更多的错误校正码数据字节)。作为实例,多层胞元(MLC)NAND快闪装置可具有比对应单层胞元(SLC)NAND快闪装置更高的位错误率。因而,MLC装置需要比对应SLC装置更多的元数据字节用于错误数据。
图2说明高稳态装置工作量200的实例。如说明,表示随时间205的命令队列深度210。在此,稳态或持续存储器装置工作量由对应于闲置周期215的小尺寸(例如时间205)指示。如上文提及,在此案例中,废料收集工作量将经分割成可能在闲置周期215期间完成的几个类似小部分。
图3说明突发装置工作量300的实例。再次标绘随时间305的命令队列深度310。应注意,在突发工作量300中,闲置周期315比图2中说明的闲置周期215大得多。此将导致在闲置周期315期间运行相对较大废料收集工作量部分。而且,应注意,被占周期与闲置周期215及315之比率倒置于持续工作量200与突发工作量300之间。如上文提及,此比率可用于确定存储器装置经受哪种类型的工作量,且可进一步影响如何分割废料收集工作量或在下一闲置周期215或315期间是否平稳运行废料收集工作量的一部分。
图4说明用于动态调整废料收集工作量的方法400的实例的流程图。方法400的操作由计算硬件执行。此计算硬件的实例可包含上文关于图1描述的存储器控制器115或存储器装置110的其它处理电路***、其它计算机组件,例如外部存储器控制器。
在操作405,记录存储器装置的闲置时间。在实例中,记录包含闲置时间日志。在实例中,日志中的条目包含闲置时间的长度。
在操作410,从所记录的闲置时间导出度量。在实例中,包含最后一闲置时间的所有闲置时间的连续子集用于导出度量。此是滑动窗形式。
在实例中,计算存储器装置的闲置时间与被占时间之间的比率作为导出度量的部分。
在实例中,计算闲置率作为导出度量的部分。在实例中,从存储器装置的输入-输出事件计数器确定闲置率。在此实例中,操作405的记录可为更新事件计数器而非维持闲置事件日志。
在实例中,可计算闲置事件的平均值作为度量导出的部分。在此,求闲置时间的平均值意味着求闲置时间的长度的平均值。在实例中,平均值是按使用年限加权的加权平均值。在实例中,加权平均值计算如下:
其中n是所考虑的闲置时间的数目且L是闲置时间的长度。
在操作415,可基于度量将当前废料收集工作量分割成几个部分。在实例中,废料收集工作量的部分经排序使得写入高速缓存的废料收集被优先处理。在实例中,其中写入高速缓存是SLC写入高速缓存。
在操作420,在下一闲置时间执行废料收集工作量的部分(来自操作415)的第一部分。在实例中,在下一闲置时间执行部分的第一部分包含基于度量来验证第一部分超过阈值。在实例中,如果废料收集部分未超过阈值,那么不会执行所述部分。
图5说明其上可执行本文中论述的技术(例如方法论)中的任一者或多者的实例机器500的框图。在替代性实施例中,机器500可操作为独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器500可以主从式网络环境中的服务器机器或客户端机器或两者的身份操作。在实例中,机器500可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器500可为个人计算机(PC)、平板计算机PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、IoT装置、汽车***或能够(循序或以其它方式)执行指定由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含个别或联合执行一(或多个)指令集以执行本文中论述的方法论中的任一者或多者(例如云计算、软件即服务(SaaS)、其它计算机集群配置)的机器的任何集合。
如本文中描述,实例可包含逻辑、组件、装置、封装或机构,或可由逻辑、组件、装置、封装或机构操作。电路***是在包含硬件(例如简单电路、门、逻辑等)的有形实体中实施的电路集合(例如一组电路)。电路***成员资格可随时间及根据硬件可变性而灵活调整。电路***包含可在操作时单独或组合执行特定任务的成员。在实例中,电路***的硬件可经恒定设计以实施特定操作(例如硬接线)。在实例中,电路***的硬件可包含可变连接的物理组件(例如执行单元、晶体管、简单电路等),其包含物理上经修改(例如,不变质量粒子的磁性、电、可移动放置等)以编码特定操作的指令的计算机可读媒体。在连接物理组件中,硬件构成的基本电性质(例如)从绝缘体改变到导体,或反之亦然。指令使参与硬件(例如执行单元或负载机构)能够经由可变连接产生硬件中的电路***的成员以在操作时实施特定任务的部分。因此,当装置操作时,计算机可读媒体通信地耦合到电路***的其它组件。在实例中,物理组件中的任一者可用于一个以上电路***的一个以上成员中。例如,在操作下,执行单元可在一时间点用于第一电路***的第一电路中且在不同时间由第一电路***中的第二电路或第二电路***中的第三电路再用。
机器(例如计算机***)500(例如主机装置105、存储器装置110等)可包含硬件处理器502(例如中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器115等)、主存储器504及静态存储器506,其中一些或全部可经由互连(例如总线)530彼此通信。机器500可进一步包含显示器单元510、字母数字输入装置512(例如键盘)及用户接口(UI)导航装置514(例如鼠标)。在实例中,显示器单元510、输入装置512及UI导航装置514可为触摸屏显示器。机器500可另外包含存储装置(例如驱动单元)508、信号产生装置518(例如扬声器)、网络接口装置520及一或多个传感器516(例如全球定位***(GPS)传感器、指南针、加速度计或其它传感器)。机器500可包含输出控制器528,例如用于通信或控制一或多个***装置(例如打印机、读卡器等)的串行(例如通用串行总线(USB))、并行或其它有线或无线(例如红外(IR)、近场通信(NFC)等)连接。
存储装置508可包含其上存储体现本文中描述的技术或功能中的任一者或多者或由本文中描述的技术或功能中的任一者或多者利用的一或多组数据结构或指令524(例如软件)的机器可读媒体522。指令524还可完全或至少部分驻留于主存储器504内,驻留于静态存储器506内,或在指令由机器500执行期间驻留于硬件处理器502内。在实例中,硬件处理器502、主存储器504、静态存储器506或存储装置508中的一者或任何组合可构成机器可读媒体522。
虽然机器可读媒体522经说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令524的单个媒体或多个媒体(例如集中式或分布式数据库或相关联高速缓存及服务器)。
术语“机器可读媒体”可包含能够存储、编码或载送由机器500执行的指令且引起机器500执行本发明的技术中的任一者或多者或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器及光学及磁性媒体。在实例中,集结型(massed)机器可读媒体包括具有含不变(例如,静止)质量的多个粒子的机器可读媒体。因此,集结型机器可读媒体不是暂时性传播信号。集结型机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可抽换式磁盘;磁光盘;及CD-ROM及DVD-ROM磁盘。
指令524(例如软件、程序、操作***(OS)等)或其它数据经存储于存储装置508上,可由存储器504存取以供处理器502使用。存储器504(例如DRAM)通常较快但易失,且因此是不同于存储装置508(例如SSD)的存储类型,存储装置508适于长期存储(包含在“关闭”条件时)。由用户或机器500使用的指令524或数据通常加载于存储器504中供处理器502使用。当存储器504已满时,可分配来自存储装置508的虚拟空间以补充存储器504;然而,因为存储装置508通常比存储器504更慢且写入速度通常是读取速度的至多1/2,所以使用虚拟存储器会由于存储装置延时而大幅降低用户体验(与存储器504(例如DRAM)相比)。此外,将存储装置508用于虚拟存储器会大幅缩短存储装置508的可用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如核心特征“ZRAM”)使用存储器的部分作为经压缩块存储装置以避免对存储装置508的分页。分页在经压缩块中发生,直到需要将此数据写入到存储装置508。虚拟存储器压缩增大存储器504的可用大小,同时减少对存储装置508的损耗。
经优化用于移动电子装置或移动存储装置的存储装置通常包含MMC固态存储装置(例如微型安全数字(microSDTM)卡等)。MMC装置包含具有主机装置的数个并行接口(例如8位并行接口),且通常为可从主机装置卸除及分离的组件。相比而言,eMMCTM装置经附接到电路板且被视为主机装置的组件,所述组件具有匹敌基于串行ATATM(串行AT(高级技术)附件或SATA)的SSD装置的读取速度。然而,对移动装置性能的需求持续增加以(例如)完全实现虚拟或增强现实装置、利用提高网络速度等。响应于此需求,存储装置已从并列通信接口转换到串行通信接口。通用快闪存储(UFS)装置(包含控制器及固件)使用具有专用读取/写入路径的低电压差分信令(LVDS)串行接口与主机装置通信,从而进一步促成更大读取/写入速度。
指令524可进一步通过通信网络526使用传输媒体经由利用数个传送协议中的任一者(例如帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)的网络接口装置520来发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、包数据网络(例如因特网)、移动电话网络(例如蜂窝网络)(例如由第三代合作伙伴计划(3GPP)系列标准(例如3G、4G、5G、长期演进(LTE)等)定义的移动电话网络)、简易老式电话(POTS)网络及无线数据网络(例如电气及电子工程师协会(IEEE)802.11系列标准(称为)、IEEE 802.15.4系列标准、对等(P2P)网络等)。在实例中,网络接口装置520可包含一或多个物理插孔(例如以太网络、同轴或电话插孔)或一或多个天线以连接到通信网络526。在实例中,网络接口装置520可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者来无线通信。术语“传输媒体”应被视为包含可存储、编码或载送由机器500执行的指令的任何无形媒体,且包含促进此软件通信的数字或模拟通信信号或其它无形媒体。
额外注释及实例:
实例1是一种用于实施经动态调整废料收集工作量的存储器装置,所述存储器装置包括:处理电路***;及存储装置,其包含指令,所述指令在由所述处理电路***执行时配置所述处理电路***以:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
在实例2中,根据实例1所述的标的物,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以使用包含最后一闲置时间的所有闲置时间的连续子集。
在实例3中,根据实例1到2中任一实例所述的标的物,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以计算所述闲置时间的平均值。
在实例4中,根据实例3所述的标的物,其中所述平均值是按使用年限加权的加权平均值。
在实例6中,根据实例1到5中任一实例所述的标的物,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以计算闲置率。
在实例7中,根据实例6所述的标的物,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
在实例8中,根据实例1到7中任一实例所述的标的物,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以计算所述存储器装置的闲置时间与被占时间之间的比率。
在实例9中,根据实例1到8中任一实例所述的标的物,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
在实例10中,根据实例9所述的标的物,其中所述写入高速缓存是单层胞元(SLC)写入高速缓存。
在实例11中,根据实例1到10中任一实例所述的标的物,其中为了在下一闲置时间执行所述部分的第一部分,所述处理电路***由所述指令配置以基于所述度量验证所述第一部分超过阈值。
实例12是一种用于经动态调整废料收集工作量的方法,所述方法包括:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
在实例13中,根据实例12所述的标的物,其中从所述闲置时间导出所述度量包含使用包含最后一闲置时间的所有闲置时间的连续子集。
在实例14中,根据实例12到13中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算所述闲置时间的平均值。
在实例15中,根据实例14所述的标的物,其中所述平均值是按使用年限加权的加权平均值。
在实例17中,根据实例12到16中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算闲置率。
在实例18中,根据实例17所述的标的物,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
在实例19中,根据实例12到18中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算所述存储器装置的闲置时间与被占时间之间的比率。
在实例20中,根据实例12到19中任一实例所述的标的物,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
在实例21中,根据实例20所述的标的物,其中所述写入高速缓存是单层胞元(SLC)写入高速缓存。
在实例22中,根据实例12到21中任一实例所述的标的物,其中在下一闲置时间执行所述部分的第一部分包含基于所述度量验证所述第一部分超过阈值。
实例23是一种包含用于实施经动态调整废料收集工作量的指令的机器可读媒体,所述指令在由处理电路***执行时引起所述处理电路***执行包括以下各者的操作:记录存储器装置的闲置时间;从所述闲置时间导出度量;基于所述度量将当前废料收集工作量分割成几个部分;及在下一闲置时间执行所述部分的第一部分。
在实例24中,根据实例23所述的标的物,其中从所述闲置时间导出所述度量包含使用包含最后一闲置时间的所有闲置时间的连续子集。
在实例25中,根据实例23到24中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算所述闲置时间的平均值。
在实例26中,根据实例25所述的标的物,其中所述平均值是按使用年限加权的加权平均值。
在实例28中,根据实例23到27中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算闲置率。
在实例29中,根据实例28所述的标的物,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
在实例30中,根据实例23到29中任一实例所述的标的物,其中从所述闲置时间导出所述度量包含计算所述存储器装置的闲置时间与被占时间之间的比率。
在实例31中,根据实例23到30中任一实例所述的标的物,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
在实例32中,根据实例31所述的标的物,其中所述写入高速缓存是单层胞元(SLC)写入高速缓存。
在实例33中,根据实例23到32中任一实例所述的标的物,其中在下一闲置时间执行所述部分的第一部分包含基于所述度量验证所述第一部分超过阈值。
实例34是一种包含用于实施经动态调整废料收集工作量的***,所述***包括用于记录存储器装置的闲置时间的构件、用于从所述闲置时间导出度量的构件、用于基于所述度量将当前废料收集工作量分割成几个部分的构件及用于在下一闲置时间执行所述部分的第一部分的构件。
在实例35中,根据实例34所述的标的物,其中用于从所述闲置时间导出所述度量的所述构件包含用于使用包含最后一闲置时间的所有闲置时间的连续子集的构件。
在实例36中,根据实例34到35中任一实例所述的标的物,其中用于从所述闲置时间导出所述度量的所述构件包含用于计算所述闲置时间的平均值的构件。
在实例37中,根据实例36所述的标的物,其中所述平均值是按使用年限加权的加权平均值。
在实例39中,根据实例34到38中任一实例所述的标的物,其中用于从所述闲置时间导出所述度量的所述构件包含用于计算闲置率的构件。
在实例40中,根据实例39所述的标的物,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
在实例41中,根据实例34到40中任一实例所述的标的物,其中用于从所述闲置时间导出所述度量的所述构件包含用于计算所述存储器装置的闲置时间与被占时间之间的比率的构件。
在实例42中,根据实例34到41中任一实例所述的标的物,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
在实例43中,根据实例42所述的标的物,其中所述写入高速缓存是单层胞元(SLC)写入高速缓存。
在实例44中,根据实例34到43中任一实例所述的标的物,其中用于在下一闲置时间执行所述部分的第一部分的所述构件包含用于基于所述度量验证所述第一部分超过阈值的构件。
实例45是至少一种包含指令的机器可读媒体,所述指令在由处理电路***执行时引起所述处理电路***执行用于实施实例1到44中任一实例的操作。
实例46是一种包括用于实施实例1到44中任一实例的构件的设备。
实例47是一种用于实施实例1到44中任一实例的***。
实例48是一种用于实施实例1到44中任一实例的方法。
上文详细描述包含对构成具体实施方式的一部分的附图的参考。图式通过说明的方式展示其中可实践本发明的特定实施例。这些实施例在本文中还称为“实例”。此类实例可包含除所展示或所描述元件之外的元件。然而,本发明人还预期其中仅提供那些所展示或所描述元件的实例。此外,本发明人还预期使用关于特定实例(或其一或多个方面)或关于本文中所展示或所描述的其它实例(或其一或多个方面)所展示或所描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本发明中,专利文件中常使用术语“一(a或an)”来包含一个或一个以上,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在本发明中,使用术语“或”指代非排他性“或”,使得“A或B”包含“A但非B”、“B但非A”及“A及B”,除非另有指示。在所附权利要求书中,术语“包含”及“其中(in which)”用作相应术语“包括”及“其中(wherein)”的普通英语等效形式。而且,在权利要求书中,术语“包含”及“包括”是开放式的,即,在权利要求中除列于此术语之后的那些元件之外还包含若干元件的***、装置、对象或过程仍被视为落在所述权利要求的范围内。此外,在权利要求书中,术语“第一”、“第二”及“第三”等仅用作标签,且不希望对其对象强加数值要求。
在各个实例中,本文中描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路***或固件。如本文中使用,“处理器”意味着任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(DSP)或任何其它类型的处理器或处理电路(包含处理器或多核心装置群组)。
术语“晶片”及“衬底”在本文中通常用于指代其上形成集成电路的任何结构,且也指代集成电路制造的各个阶段期间的此类结构。因此,以下详细描述不应被视为限制意义,且各个实施例的范围仅由所附权利要求书及此权利要求书所授权的等效物的全范围定义。
根据本发明及本文中描述的各个实施例包含利用存储器胞元的垂直结构(例如NAND存储器胞元串)的存储器。如本文中使用,方向性形容词将被视为相对于其上形成存储器胞元的衬底的表面(即,垂直结构将被视为延伸远离衬底表面,垂直结构的底端将被视为最靠近衬底表面的端,且垂直结构的顶端将被视为最远离衬底表面的端)。
如本文中使用,操作存储器胞元包含从存储器胞元读取、写入到存储器胞元或擦除存储器胞元。使存储器胞元处于预期状态中的操作在本文中被称为“编程”,且可包含写入到存储器胞元或从存储器胞元擦除两者(例如,存储器胞元可经编程到擦除状态)。
根据本发明的一或多个实施例,定位于存储器装置内部或外部的存储器控制器(例如处理器、控制器、固件等)能够确定(例如选择、设置、调整、计算、改变、清除、通信、调适、导出、定义、利用、修改、应用等)损耗循环的数量或损耗状态(例如记录损耗循环、计数存储器装置的操作(在其发生时)、追踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据本发明的一或多个实施例,存储器存取装置可经配置以使用每一存储器操作将损耗循环信息提供到存储器装置。存储器装置控制电路***(例如控制逻辑)可经编程以补偿对应于损耗循环信息的存储器装置性能变化。存储器装置可接收损耗循环信息且响应于损耗循环信息而确定一或多个操作参数(例如值、特性)。
本文中描述的方法实例可至少部分经机器或计算机实施。一些实例可包含使用可操作以配置电子装置以执行上文实例中描述的方法的指令来编码的计算机可读媒体或机器可读媒体。此类方法的实施方案可包含代码,例如微代码、汇编语言代码、高级语言代码或类似物。此代码可包含用于执行各种方法的计算机可读指令。代码可形成计算机程序产品的部分。此外,代码可有形地存储于一或多个易失性或非易失性有形计算机可读媒体上,例如在执行期间或在其它时间。这些有形计算机可读媒体的实例可包含(但不限于)硬盘、可抽换式磁盘、可抽换式光盘(例如光盘及数字视频磁盘)、卡式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态硬盘(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置及类似物。
上文描述希望是说明性而非限制性。举例来说,上述实例(或其一或多个方面)可彼此组合使用。例如,所属领域的一般技术人员可在检视上文描述之后使用其它实施例。主张理解其并非用于解译或限制权利要求书的范围或含义。而且,在上文详细描述中,可将各种特征组合在一起以简化本发明。此不应被解译为希望未主张的揭示特征是任何权利要求的关键。确切来说,发明标的物可在于少于特定揭示实施例的所有特征。因此,权利要求书特此并入具体实施方式中,其中每一权利要求独立作为单独实施例,且预期此类实施例可以各种组合或排列彼此组合。应参考所附权利要求书连同此权利要求书所授权的等效物的全范围来确定实施例的范围。
Claims (24)
1.一种用于实施经动态调整废料收集工作量的存储器装置,所述存储器装置包括:
处理电路***;及
存储装置,其包含指令,所述指令在由所述处理电路***执行时配置所述处理电路***以:
记录存储器装置的闲置时间;
从所述闲置时间导出度量;
基于所述度量将当前废料收集工作量分割成几个部分;及
在下一闲置时间执行所述部分的第一部分。
2.根据权利要求1所述的存储器装置,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以使用包含最后一闲置时间的所有闲置时间的连续子集。
3.根据权利要求1所述的存储器装置,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以计算所述闲置时间的平均值。
4.根据权利要求3所述的存储器装置,其中所述平均值是按使用年限加权的加权平均值。
6.根据权利要求1所述的存储器装置,其中为了从所述闲置时间导出所述度量,所述处理电路***由所述指令配置以计算闲置率。
7.根据权利要求6所述的存储器装置,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
8.根据权利要求1所述的存储器装置,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
9.一种用于经动态调整废料收集工作量的方法,所述方法包括:
记录存储器装置的闲置时间;
从所述闲置时间导出度量;
基于所述度量将当前废料收集工作量分割成几个部分;及
在下一闲置时间执行所述部分的第一部分。
10.根据权利要求9所述的方法,其中从所述闲置时间导出所述度量包含使用包含最后一闲置时间的所有闲置时间的连续子集。
11.根据权利要求9所述的方法,其中从所述闲置时间导出所述度量包含计算所述闲置时间的平均值。
12.根据权利要求11所述的方法,其中所述平均值是按使用年限加权的加权平均值。
14.根据权利要求9所述的方法,其中从所述闲置时间导出所述度量包含计算闲置率。
15.根据权利要求14所述的方法,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
16.根据权利要求9所述的方法,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
17.一种包含用于实施经动态调整废料收集工作量的指令的机器可读媒体,所述指令在由处理电路***执行时引起所述处理电路***执行包括以下各者的操作:
记录存储器装置的闲置时间;
从所述闲置时间导出度量;
基于所述度量将当前废料收集工作量分割成几个部分;及
在下一闲置时间执行所述部分的第一部分。
18.根据权利要求17所述的机器可读媒体,其中从所述闲置时间导出所述度量包含使用包含最后一闲置时间的所有闲置时间的连续子集。
19.根据权利要求17所述的机器可读媒体,其中从所述闲置时间导出所述度量包含计算所述闲置时间的平均值。
20.根据权利要求19所述的机器可读媒体,其中所述平均值是按使用年限加权的加权平均值。
22.根据权利要求17所述的机器可读媒体,其中从所述闲置时间导出所述度量包含计算闲置率。
23.根据权利要求22所述的机器可读媒体,其中所述闲置率是从所述存储器装置的输入-输出事件计数器确定。
24.根据权利要求17所述的机器可读媒体,其中所述废料收集工作量的所述部分经排序使得写入高速缓存的废料收集被优先处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/565,066 US11550711B2 (en) | 2019-09-09 | 2019-09-09 | Dynamically adjusted garbage collection workload |
US16/565,066 | 2019-09-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463648A true CN112463648A (zh) | 2021-03-09 |
Family
ID=74833390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010928134.5A Pending CN112463648A (zh) | 2019-09-09 | 2020-09-07 | 经动态调整废料收集工作量 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11550711B2 (zh) |
CN (1) | CN112463648A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290897A (zh) * | 1999-06-30 | 2001-04-11 | 国际商业机器公司 | 可动态调节而且可配置的废料收集程序用的方法和*** |
CN1783031A (zh) * | 2004-12-02 | 2006-06-07 | 明基电通股份有限公司 | 双向数据储存方法 |
US8032724B1 (en) * | 2007-04-04 | 2011-10-04 | Marvell International Ltd. | Demand-driven opportunistic garbage collection in memory components |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
US20150186160A1 (en) * | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Configuring processor policies based on predicted durations of active performance states |
US20160350214A1 (en) * | 2015-05-29 | 2016-12-01 | Google Inc. | Idle time software garbage collection |
CN107077422A (zh) * | 2015-02-18 | 2017-08-18 | 国际商业机器公司 | 确定存储器外部碎片的原因 |
CN109726137A (zh) * | 2017-10-27 | 2019-05-07 | 华为技术有限公司 | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171228B2 (en) * | 2009-11-12 | 2012-05-01 | Oracle International Corporation | Garbage collection in a cache with reduced complexity |
TWI508099B (zh) * | 2013-01-28 | 2015-11-11 | Phison Electronics Corp | 工作時脈切換方法、記憶體控制器與記憶體儲存裝置 |
US20160041762A1 (en) * | 2014-08-08 | 2016-02-11 | Kabushiki Kaisha Toshiba | Memory system, host device and information processing system |
US9971681B2 (en) * | 2016-06-01 | 2018-05-15 | Nanjing University | Lazy real time garbage collection method |
EP4099177A1 (en) * | 2017-10-09 | 2022-12-07 | Huawei Technologies Co., Ltd. | Garbage data scrubbing method, and device |
US11163679B2 (en) * | 2018-04-04 | 2021-11-02 | SK Hynix Inc. | Garbage collection strategy for memory system and method of executing such garbage collection |
US20220171713A1 (en) * | 2020-11-30 | 2022-06-02 | Micron Technology, Inc. | Temperature-aware data management in memory sub-systems |
-
2019
- 2019-09-09 US US16/565,066 patent/US11550711B2/en active Active
-
2020
- 2020-09-07 CN CN202010928134.5A patent/CN112463648A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290897A (zh) * | 1999-06-30 | 2001-04-11 | 国际商业机器公司 | 可动态调节而且可配置的废料收集程序用的方法和*** |
CN1783031A (zh) * | 2004-12-02 | 2006-06-07 | 明基电通股份有限公司 | 双向数据储存方法 |
US8032724B1 (en) * | 2007-04-04 | 2011-10-04 | Marvell International Ltd. | Demand-driven opportunistic garbage collection in memory components |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
US20150186160A1 (en) * | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Configuring processor policies based on predicted durations of active performance states |
CN107077422A (zh) * | 2015-02-18 | 2017-08-18 | 国际商业机器公司 | 确定存储器外部碎片的原因 |
US20160350214A1 (en) * | 2015-05-29 | 2016-12-01 | Google Inc. | Idle time software garbage collection |
CN109726137A (zh) * | 2017-10-27 | 2019-05-07 | 华为技术有限公司 | 固态硬盘垃圾回收任务的管理方法、控制器和固态硬盘 |
Non-Patent Citations (1)
Title |
---|
方才华等: "全程优化的固态硬盘垃圾回收方法", 《计算机应用》, vol. 37, pages 1257 - 1262 * |
Also Published As
Publication number | Publication date |
---|---|
US20210073121A1 (en) | 2021-03-11 |
US11550711B2 (en) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10996867B2 (en) | Managing partial superblocks in a NAND device | |
US11520524B2 (en) | Host adaptive memory device optimization | |
US11899574B2 (en) | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches | |
US11341041B2 (en) | Synchronizing NAND logical-to-physical table region tracking | |
US10852964B2 (en) | Host-resident translation layer validity check techniques | |
US20220206959A1 (en) | Host-resident translation layer validity check techniques | |
US11989557B2 (en) | Large data read techniques | |
US20200042436A1 (en) | Host-resident translation layer validity check | |
US11295806B2 (en) | Large file integrity techniques | |
US10901903B2 (en) | Flash memory persistent cache techniques | |
US10923202B2 (en) | Host-resident translation layer triggered host refresh | |
US20220004337A1 (en) | Command prioritization in a command queue | |
CN112673356B (zh) | 快速非易失性存储装置恢复技术 | |
US11681461B2 (en) | Host inquiry response generation in a memory device | |
US11698826B2 (en) | Fatal error logging in a memory device | |
CN112463648A (zh) | 经动态调整废料收集工作量 | |
CN115516433A (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 |