CN114639418A - 取消映射操作技术 - Google Patents
取消映射操作技术 Download PDFInfo
- Publication number
- CN114639418A CN114639418A CN202111530695.0A CN202111530695A CN114639418A CN 114639418 A CN114639418 A CN 114639418A CN 202111530695 A CN202111530695 A CN 202111530695A CN 114639418 A CN114639418 A CN 114639418A
- Authority
- CN
- China
- Prior art keywords
- unmap
- entry
- commands
- determining
- mapping
- 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
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
- 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
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及取消映射操作技术。存储器系统可包含易失性存储器装置和非易失性存储器装置。所述存储器系统可接收一组取消映射命令,每个取消映射命令包含与未使用的数据相关联的逻辑块地址。所述存储器系统可确定与所述一组取消映射命令相关联的一或多个参数是否满足阈值。如果所述一或多个参数满足所述阈值,则所述存储器系统可选择与用于执行所述一组取消映射命令的第二程序(例如,默认程序)不同的用于执行所述一组取消映射命令的第一程序,且可使用所述第一程序执行所述一组取消映射命令。如果所述一或多个参数不满足所述阈值,则所述存储器系统可使用所述第二程序执行所述一组取消映射命令。
Description
相关申请的交叉引用
本专利申请主张2020年12月15日由Cariello等人递交的标题为“取消映射操作技术(UNMAP OPERATION TECHNIQUES)”的第17/122,174号美国专利申请的优先权,所述专利申请让与给本受让人,且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及取消映射操作技术。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。举例来说,二进制存储器单元可被编程为两个支持状态中的一者,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两个可能状态,所述两个可能状态中的任一者可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、“或非”(NOR)和“与非”(NAND)存储器装置等。存储器装置可为易失性或非易失性的。除非由外部电源周期性地刷新,否则易失性存储器单元(例如,DRAM单元)可能随着时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种设备。所述设备可包含:存储器系统,其包括易失性存储器装置和非易失性存储器装置;控制器,其与所述存储器系统耦合且可操作以使所述设备:接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;至少部分地基于确定所述一或多个参数满足所述阈值,选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及使用所述第一程序执行所述多个取消映射命令。
描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可存储包括指令的代码,所述指令在由电子装置的处理器执行时使所述电子装置:接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;至少部分地基于确定所述一或多个参数满足所述阈值,选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及使用所述第一程序执行所述多个取消映射命令。
描述一种由存储器系统执行的方法。所述方法可包含:接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;至少部分地基于确定所述一或多个参数满足所述阈值,选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及使用所述第一程序执行所述多个取消映射命令。
附图说明
图1说明根据本文所公开的实例的支持取消映射操作技术的系统的实例。
图2说明根据本文所公开的实例的支持取消映射操作技术的过程流的实例。
图3说明根据本文所公开的实例的支持取消映射操作技术的过程流的实例。
图4展示根据本文所公开的实例的支持取消映射操作技术的存储器系统的框图。
图5展示说明根据本文所公开的实例的支持取消映射操作技术的一或多个方法的流程图。
具体实施方式
存储器系统的存储器装置可将数据存储在对应的物理地址处,其中物理地址可标识存储器装置内对应存储器单元的物理位置。归因于存储器装置适应额外数据的写入、由存储器装置执行的维护操作(例如,无用单元收集操作)或出于任何数目的其它原因,存储器装置内的数据的物理位置可能随着时间推移而改变。与存储器系统耦合的主机系统可使用逻辑地址(例如,逻辑块地址(LBA)、虚拟地址、系统地址或其它逻辑地址)参考数据(例如,如果发布与数据相关联的读取、写入或其它命令),且存储器装置可生成且维持与数据相关联的逻辑地址与存储所述数据的存储器单元的物理地址之间的映射,所述映射可支持存储器装置随着时间推移改变物理地址。
主机系统可使用取消映射命令来释放分配给或用于存储未使用的数据的存储器装置的存储空间。举例来说,主机系统可将取消映射命令发布(例如,发送)到存储器系统,所述取消映射命令包含与未使用的数据相关联的LBA。响应于接收到取消映射命令,存储器系统可更新LBA与未使用的数据的物理地址之间的映射以指示所述LBA与所述物理地址解除关联。另外,存储器系统可更新第二映射以指示存储在所述物理地址处的数据无效(例如,未使用)。在一些情况下,主机系统可在相对较短的持续时间内将大量取消映射命令发布到存储器系统。为了执行所述量的取消映射命令,存储器系统可加载和卸载到存储器系统的易失性存储器装置的对应映射以更新所述映射。归因于加载和卸载这些映射,用于执行取消映射命令的一些程序可增加存储器系统的时延和功耗(例如,在一些情况下,所述加载和卸载可能不必要)。因此,可能需要用以改进执行取消映射命令的程序的技术。
本文描述了通过使用提升程序提高取消映射命令性能的技术、系统和装置。举例来说,主机系统可将各自包含与未使用的数据相关联的LBA的一组取消映射命令发布到与主机系统耦合的存储器系统。存储器系统可确定与所述一组取消映射命令相关联的一或多个参数(例如,队列深度、数据模式、LBA的渐进次序、取消映射命令的量或一些其它参数)满足一或多个阈值。存储器系统可基于所述一或多个参数满足所述一或多个阈值而选择用于执行所述一组取消映射命令的程序。举例来说,如果所述一或多个参数满足相关联阈值,则存储器系统可选择用于执行所述一组取消映射命令的提升程序,且可使用所述提升程序执行所述一组取消映射命令。在一些情况下,所述提升程序可包含对一些表(例如,无效性表)的改变进行分组以增大在所述表从非易失性存储器装置加载到易失性存储器装置之后发生的改变的数目的过程。此类技术可减少易失性存储器装置与非易失性存储器装置之间的表的传送量,且由此减小用于执行取消映射命令的群组的时延。所述提升程序可以是不同于用于执行所述一组取消映射命令的默认程序的程序,所述程序可如本文中所描述减小时延和功耗且增大与执行取消映射命令相关联的存储器系统性能。
首先在参考图1所描述的系统的上下文中描述本公开的特征。在如参考图2-3所描述的上下文过程流中描述本公开的特征。本公开的这些和其它特征进一步通过设备图和流程图说明且参考设备图和流程图描述,所述设备图和流程图涉及参考图4-5所描述的取消映射操作技术。
图1是根据本文所公开的实例的支持取消映射操作技术的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
计算系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,这一耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是经配置以使主机系统105根据本文中所描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下,可包含处理器芯片组和由处理器芯片组执行的软件栈。举例来说,主机系统105可包含经配置以用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存器(例如,在主机系统105本地的或包含在所述主机系统中的存储器)、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110,以例如将数据写入到存储器系统110和从存储器系统110读取数据。尽管在图1中展示一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传送控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于SATA接口、UFS接口、eMMC接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)和低功率双数据速率(LPDDR)接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每个类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管在图1的实例中展示两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,在存储器系统110包含多于一个存储器装置130的情况下,存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合且通信(例如,经由物理主机接口),且可以是经配置以使得存储器系统110根据本文中所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合且通信以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此类命令(例如,在一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作,且可将所述命令或操作转换成指令或合适的命令,以实现对存储器装置130的所要存取。而且在一些情况下,存储器系统控制器115可与主机系统105以及与一或多个存储器装置130交换数据(例如,响应于来自主机系统105的命令或以其它方式与所述命令相关联)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可经配置以用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、无用单元收集操作、例如错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,LBA)和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含例如静态随机存取存储器(SRAM)的随机存取存储器(RAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能相关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,如果从存储器装置130读取或写入到所述存储器装置,则数据可存储于本地存储器120中,且所述数据可在本地存储器120中可用,以供主机系统105根据高速缓存策略(例如,以相对于存储器装置130减小的时延)进行后续检索或操控(例如,更新)。
尽管图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于(例如,由主机系统105实施的)外部控制器或可分别在存储器装置130内部的一或多个本地控制器135来执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分由存储器系统控制器115管理的存储器装置130可被称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置130可包含一或多个非易失性存储器单元阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性RAM(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含RAM存储器单元,例如动态RAM(DRAM)存储器单元及同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可分别包含本地控制器135(例如,处于同一裸片上或同一封装内),所述本地控制器可在存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器115的一或多个功能。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,且每个平面165可包含相应的一组块170,其中每个块170可包含相应的一组页175,并且每个页175可包含一组存储器单元。
在一些情况下,NAND存储器装置130可包含经配置以各自存储一个信息位的存储器单元,其可称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含经配置以各自存储多个信息位的存储器单元,其在经配置以各自存储两个信息位的情况下可称为多层级单元(MLC),在经配置以各自存储三个信息位的情况下可称为三层级单元(TLC),在经配置以各自存储四个信息位的情况下可称为四层级单元(TLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可涉及更窄读取或写入容限或更大复杂性以支持电路系统。
在一些情况下,平面165可指块170的群组,且在一些情况下,可在不同平面165内发生并发操作。举例来说,可对不同块170内的存储器单元执行并发操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中执行并发操作可受制于一或多个限制,例如对在其相应平面165内具有相同页地址的不同页175内的存储器单元执行相同操作(例如,关于命令解码、页地址解码电路系统,或跨越平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。举例来说,同一页175中的存储器单元可共享公共字线(例如,与其耦合),且同一串中的存储器单元可共享公共数字线(其替代地可称作位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可以第一级别的粒度(例如,以页级别的粒度)读取和编程(例如,写入),但可能以第二级别的粒度(例如,以块级别的粒度)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的部分同时编程或读取)的存储器的最小单元(例如,存储器单元组),且块170可以是可独立地擦除(例如,作为单个擦除操作的部分同时擦除)的存储器的最小单元(例如,存储器单元组)。此外,在一些情况下,NAND存储器单元可在其可用新数据重新写入之前被擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170被擦除才更新已使用的页175。
在一些情况下,为了更新块170内的一些数据同时保留块170内的其它数据,存储器装置130可将待保留的数据复制到新块170且将更新后的数据写入到新块170的一或多个其余页175。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保持在旧块170中的数据标记或以其它方式表示为无效或过时,且更新逻辑到物理(L2P)映射表以使数据的逻辑地址(例如,LBA)与新的有效块170而非旧的无效块170相关联。在一些情况下,例如由于时延或耗损考虑,可使用此类复制和重新映射,而不是擦除和重写整个旧块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,或多个块170或平面165内),以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
在一些情况下,可维持L2P表且可在页级别的粒度将数据标记为有效或无效,且页175可含有效数据、无效数据或不含数据。无效数据可以是由于数据的最新版本或更新版本存储在存储器装置130的不同页175中而过时的数据。无效数据先前已编程到无效页175,但可能不再与有效逻辑地址(例如由主机系统105参考的逻辑地址)相关联。有效数据可以是存储在存储器装置130上的此类数据的最新版本。不包含数据的页175可以是从未被写入或已被擦除的页175。
在一些情况下,存储器系统控制器115或本地控制器135可执行存储器装置130的操作(例如,作为一或多个媒体管理算法的一部分),例如耗损均衡、后台刷新、无用单元收集、清理、块扫描、健康监测,或其它操作,或其任何组合。举例来说,在存储器装置130内,块170可具有含有有效数据的一些页175和含有无效数据的一些页175。为了避免等待块170中的一些或全部页175具有无效数据以便擦除以及重复使用块170,可调用称作“无用单元收集”的算法,以允许块170被擦除和释放为空闲块以用于后续写入操作。无用单元收集可指一组媒体管理操作,其包含例如:选择含有有效和无效数据的块170;选择块170中含有有效数据的页175;将所述有效数据从选定页175复制到新位置(例如,另一块170中的空闲页175);将先前选定的页175中的数据标记为无效;以及擦除选定块170。因此,可增加已擦除的块170的数目,使得可使用更多的块170来存储后续数据(例如,随后从主机系统105接收到的数据)。
主机系统105可将一组取消映射命令(例如,经由主机系统控制器106)发送到存储器系统110(例如,到存储器系统控制器115)以释放被分配给或用于存储未使用的数据的存储器装置130的存储空间。存储器系统110(例如,存储器系统控制器115)可确定与所述一组取消映射命令相关联的一或多个参数(例如,队列深度、数据模式、LBA的渐进次序、取消映射命令的量或一些其它参数),且可基于所述一或多个参数选择用于执行所述一组取消映射命令的程序。举例来说,如果所述一或多个参数满足相关联阈值,则存储器系统110可选择用于执行所述一组取消映射命令的提升程序,且可使用所述提升程序执行所述一组取消映射命令。所述提升程序可以是不同于用于执行所述一组取消映射命令的默认程序的程序,所述程序可如本文中所描述减小时延和功耗且增大与执行取消映射命令相关联的存储器系统性能。
系统100可包含支持取消映射操作技术的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130(例如,由本地控制器135)执行,则此类指令可使主机系统105、存储器系统控制器115或存储器装置130执行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115来提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例可以是MNAND系统。
图2说明根据本文所公开的实例的支持取消映射操作技术的过程流200的实例。过程流200可由存储器系统(例如,参考图1描述的存储器系统110)的组件执行。举例来说,过程流200可由例如参考图1所描述的存储器系统控制器115等存储器系统的控制器或存储器装置(或这两者)执行。过程流200可描绘选择用于执行取消映射命令的程序以及使用选定程序执行取消映射命令的过程,所述选定程序可经实施以减小时延和功耗且增大系统性能以及其它益处。过程流200的各方面可由控制器以及其它组件实施。另外或替代地,过程流200的各方面可实施为存储在存储器中的指令(例如,存储在与存储器系统控制器115耦合的存储器中的固件)。举例来说,指令在由控制器(例如,存储器系统控制器115)执行的情况下可使控制器执行过程流200的操作。
在过程流200的以下描述中,操作可按不同次序或在不同时间执行。也可从过程流200省去一些操作,或可将其它操作添加到过程流200。
在205处,可接收一组取消映射命令。举例来说,主机系统可将一组取消映射命令发送到控制器以使存储器装置的存储空间可用于其它用途。举例来说,存储器装置可能不知道存储在存储器装置中的一些数据(例如,主机数据)未使用或将不会再被主机系统使用。为了向存储器装置指示数据未使用,主机系统可将一或多个取消映射命令发送到控制器,每个取消映射命令包含与未使用的数据相关联的LBA。
在210处,可关于与所述一组取消映射命令相关联的一或多个参数是否满足相关联的一或多个阈值而对所述一或多个参数进行评估。与所述一组取消映射命令相关联的所述一或多个参数的实例可包含所述一组取消映射命令的队列深度、与所述一组取消映射命令相关联的数据模式、所述一组取消映射命令中包含的LBA的次序和取消映射命令的量,以及其它参数,或其组合。控制器可确定所述一或多个参数是否满足相关联的一或多个阈值。举例来说,控制器可确定所述一组取消映射命令的队列深度是否满足深度阈值(例如,4个取消映射命令的队列深度,或某一其它队列深度)、所述一组取消映射命令是否根据某一数据模式发布、所述一组取消映射命令是否按LBA的渐进次序发布、所述一组取消映射命令的取消映射命令的量是否满足量阈值,或其组合。在一些实例中,根据某一数据模式发布的一组取消映射命令可以是其中与所述取消映射命令的LBA相关联的数据对应于某一模式(例如,业务模式、预定义模式或某一其它模式)的一组取消映射命令。在一些实例中,按LBA的渐进次序发布的一组取消映射命令可以是其中在前一取消映射命令之后的取消映射命令的LBA大于所述前一取消映射命令的LBA的一组取消映射命令。
在一些情况下,一或多个参数满足相关联的一或多个阈值可向控制器指示使用提升程序来执行所述一组取消映射命令。举例来说,在一些情况下,主机系统可在有限持续时间内将大量取消映射命令发布到控制器。举例来说,一些主机系统(例如,安卓装置)可周期性地执行一或多个碎片整理操作(例如,在夜晚、在电池正在充电时或在某一其它时间)以合并未使用的数据页。为了执行碎片整理操作,主机系统可将大量取消映射命令发布到与未使用的数据相关联的空闲页。然而,如果使用一些常规或默认程序来执行取消映射命令,则执行大量取消映射命令(例如,连续地)可能会增大包含控制器的存储器系统处的时延和功耗。因此,在一些实例中,控制器可选择用以执行取消映射命令以减小时延和功耗且增大与执行所述取消映射命令相关联的存储器系统性能以及有其它益处的提升程序。
举例来说,如果控制器确定所述一或多个参数满足相关联的一或多个阈值,则控制器或存储器装置(或这两者)可如下执行215到230。举例来说,如果控制器确定所述一组取消映射命令的队列深度大于(例如,或等于)深度阈值,所述一组取消映射命令是根据业务模式而发布,所述一组取消映射命令是按LBA的渐进次序而发布,所述一组取消映射命令的取消映射命令的量大于(例如,或等于)量阈值,或其组合,则控制器或存储器装置(或这两者)可如下执行215到230。
在215处,可选择提升程序。举例来说,控制器可基于确定所述一或多个参数满足相关联的一或多个阈值而选择提升程序来执行所述一组取消映射命令。
在220处,可将存储在与控制器耦合的易失性存储器装置(例如,本地存储器120、包含易失性存储器单元的存储器装置130、SRAM装置)中的数据传送到与控制器耦合的非易失性存储器装置(例如,包含非易失性存储器单元的存储器装置130、NAND装置)。举例来说,相对于非易失性存储器装置,易失性存储器装置可与较快操作相关联。在一些实例中,在执行所述一组取消映射命令之前,控制器可将数据(例如,经缓存数据、经缓存表或存储在易失性存储器装置中的其它数据)从易失性存储器装置传送到非易失性存储器装置。以此方式,可使易失性存储器装置中的存储器可供用于存储与所述一组取消映射命令相关联的信息。
在225处,可分配易失性存储器装置的缓冲器以存储与所述一组取消映射命令相关联的映射。举例来说,为了执行取消映射命令,控制器可至少更新指示逻辑地址与物理地址之间的关系的第一映射的条目以及指示存储在物理地址处的数据的有效性的第二映射的条目,以及其它操作。控制器可分配缓冲器以存储第一映射的一部分和第二映射的一部分。在一些实例中,经分配用于存储第二映射的缓冲器的一部分可大于经分配用于存储第一映射的缓冲器的一部分。
在230处,可使用提升程序执行所述一组取消映射命令。举例来说,控制器可使用提升程序来执行所述一组取消映射命令。下文参考图3描述使用提升程序执行所述一组取消映射命令的方面。
如果在210处,控制器确定所述一或多个参数不满足相关联的阈值,则控制器或存储器装置(或这两者)可如下执行235到240。举例来说,如果控制器确定所述一组取消映射命令的队列深度小于(例如,或等于)深度阈值,所述一组取消映射命令未根据业务模式发布,所述一组取消映射命令未按LBA的渐进次序发布,所述一组取消映射命令的取消映射命令的量小于(例如,或等于)量阈值,或其组合,则控制器或存储器装置(或这两者)可如下执行235到240。
在235处,可选择默认程序。举例来说,控制器可基于确定所述一或多个参数不满足相关联阈值而选择默认程序来执行所述一组取消映射命令。在一些情况下,默认程序可以是除所述提升程序外用以执行所述一组取消映射命令的任何程序。
在240处,控制器或存储器装置(或这两者)可使用默认程序执行所述一组取消映射命令。在一些实例中,使用默认程序执行取消映射命令可包含:将第一映射的一部分和第二映射的一部分从非易失性装置传送到易失性存储器装置,更新第一映射和第二映射的条目,以及随后将第一映射的所述部分和第二映射的所述部分传传送到非易失性存储器装置。即,对于每个取消映射命令,默认程序可包含将第一映射和第二映射的部分传送到易失性存储器装置和从易失性存储器装置传送所述部分。
图3说明根据本文所公开的实例的支持取消映射操作技术的过程流300的实例。过程流300可由存储器系统(例如,参考图1描述的存储器系统110)的组件执行。举例来说,过程流300可由例如参考图1所描述的存储器系统控制器115等存储器系统的控制器或存储器装置(或这两者)执行。过程流300可描绘使用提升程序执行取消映射命令的过程,所述提升程序可经实施以减小时延和功耗且增大系统性能以及其它益处。举例来说,过程流300可以是在参考图2所描述的230处使用提升程序执行所述一组取消映射命令的方式的实例。过程流300的各方面可由控制器以及其它组件实施。另外或替代地,过程流300的各方面可实施为存储在存储器中的指令(例如,存储在与存储器系统控制器115耦合的存储器中的固件)。举例来说,指令在由控制器(例如,存储器系统控制器115)执行的情况下可使控制器执行过程流300的操作。
在一些实例中,为了执行取消映射命令,控制器可至少更新指示逻辑地址与物理地址之间的关系的第一映射的条目,且可更新指示存储在物理地址处的数据的有效性的第二映射的条目,以及其它操作。在一些实例中,第一映射可以是将逻辑地址(例如,LBA)映射到与控制器耦合的非易失性存储器装置(例如,存储器装置130、NAND装置或某一其它非易失性存储器装置)的对应物理地址的实例物理指针表(PPT)。在一些情况下,PPT表可被称为逻辑到物理(L2P)表。在一些实例中,第二映射可以是指示存储在物理地址处的数据是否有效的页有效性表(PVT)的实例。为了清楚起见,过程流300使用PPT映射和PVT映射的特定实例,但类似过程适用于同样涵盖在本公开的范围内的其它映射。
在过程流300的以下描述中,操作可按不同次序或在不同时间执行。也可从过程流300省去一些操作,或可将其它操作添加到过程流300。
在305处,PPT映射的一部分可任选地加载到与控制器耦合或包含在控制器中的易失性存储器装置(例如,本地存储器120、SRAM装置)中。举例来说,为了开始执行一组取消映射命令中的取消映射命令,控制器可确定包含所述取消映射命令的LBA的PPT映射的一部分是否存储在易失性存储器装置中。如果包含所述LBA的PPT映射的部分存储在易失性存储器装置中,则控制器可在不加载所述PPT映射的任何额外部分的情况下进行到310。如果包含所述LBA的PPT映射的部分未存储在易失性存储器装置中,则控制器可至少将包含所述LBA的PPT映射的部分从非易失性存储器装置传送到易失性存储器装置。在一些实例中,如果与所述一组取消映射命令相关联的LBA是递增的或渐进的或这两者,则PPT映射的单个部分可包含与所述一组取消映射命令相关联的多个LBA。因此,控制器可在不加载PPT映射的额外部分的情况下执行所述一组取消映射命令中的多个取消映射命令的操作(例如,更新操作)。因此,控制器可通过减少将PPT映射的部分传送到易失性存储器装置的次数来减少与执行所述一组取消映射命令相关联的时延和功耗。
在一些情况下,相对于非易失性存储器装置,易失性存储器装置可与较快操作相关联,但相对于易失性存储器装置,非易失性存储器装置可与较大存储容量相关联。在一些实例中,为节省易失性存储器装置中的存储空间或归因于易失性存储器装置的存储限制或这两者,PPT映射和PVT映射可因此存储在非易失性存储器装置中。举例来说,易失性存储器装置可能不具有存储PPT映射或PVT映射或这两者的存储容量。因此,控制器可将PPT映射和PVT映射的部分传送到易失性存储器装置以对对应的PPT映射和PVT映射部分执行操作(例如,更新操作)。因此,在305处,PPT映射的一部分可任选地加载到易失性存储器装置中。
在310处,可更新PPT映射的所述部分。举例来说,PPT映射的所述部分可包含各自将LBA映射到非易失性存储器装置的物理地址的条目。取消映射命令可指示与所述取消映射命令的LBA相关联的数据未使用。因此,基于取消映射命令,控制器可更新对应于所述取消映射命令的LBA的PPT映射的部分的条目以指示所述LBA与未使用的数据的物理地址解除关联。
另外,在310处,条目可存储在下文称作PVT改变日志1的第一PVT改变日志中。举例来说,PVT改变日志的条目可指示对PVT映射的对应条目的更新。PVT映射的条目可指示存储在物理地址处的数据是否有效。因此,基于取消映射命令,控制器可在PVT改变日志1中存储条目,所述条目指示对应于所述取消映射命令的LBA的PVT映射的条目将要更新以指示存储在物理地址处的数据无效。
在315处,控制器可确定PVT改变日志1条目是否已满。如果PVT改变日志1的条目已满,则控制器可继续以如下执行325到380。执行315到380可减少控制器在易失性存储器装置与非易失性存储器装置之间传送PVT映射的部分的次数。举例来说,执行315到380可对PVT映射的部分的改变进行分组以增大在PVT映射的一部分被传送到易失性存储器装置之后发生的改变的数目。这可减少易失性存储器装置与非易失性存储器装置之间PVT映射的部分的传送次数,由此减小执行所述一组取消映射命令的时延和功耗。
如果PVT改变日志1条目未满,则在320处,控制器可确定所述一组取消映射命令中是否存在待执行的额外取消映射命令。如果存在待执行的额外取消映射命令,则控制器可执行305到315,直到PVT改变日志1的条目已满或不存在待执行的额外取消映射命令为止。如果在320处,不存在额外取消映射命令但存在存储在PVT改变日志1中的条目,则控制器可继续使用存储有条目的PVT改变日志1执行325到380(例如,即使PVT改变日志1条目未满)。
在325处,可检索PVT改变日志1的条目。举例来说,控制器可检索存储在PVT改变日志1中的条目以更新PVT映射的对应条目。
在330处,控制器可确定PVT映射中包含与PVT改变日志1的所检索条目对应的条目的第一部分是否存储在易失性存储器装置中。举例来说,易失性存储器装置可能存储PVT映射的一或多个部分而非整个PVT映射(例如,归因于易失性存储器装置的存储容量限制)。因此,在330处,控制器可确定易失性存储器装置是否存储PVT映射的第一部分。
如果易失性存储器装置存储PVT映射的第一部分,则在335处,可更新PVT映射的第一部分。举例来说,控制器可更新PVT映射中与PVT改变日志1的所检索条目对应的条目以指示存储在物理地址处的数据无效。
如果易失性存储器装置未存储PVT映射的第一部分,则在340处,控制器可确定易失性存储器装置中是否存在可用的存储空间来存储PVT映射的第一部分。
如果易失性存储器装置具有可用存储空间,则在345处,PVT映射的第一部分可加载到易失性存储器装置中。举例来说,控制器可将PVT映射的第一部分从非易失性存储器装置传送到易失性存储器装置。控制器随后可更新PVT映射中与PVT改变日志1的所检索条目对应的条目以指示存储在物理地址处的数据无效。
如果易失性存储器装置不具有可用存储空间,则在350处,控制器可确定第二PVT改变日志(下文称为PVT改变日志2)的条目是否已满。
如果PVT改变日志2可用于存储额外条目(例如,条目未满),则可将PVT改变日志1的所检索条目移动到PVT改变日志2。举例来说,在355处,控制器可将PVT改变日志1的所检索条目移动到PVT改变日志2。
在更新PVT映射的第一部分之后,或在将PVT改变日志1的所检索条目移动到PVT改变日志2之后,或如果控制器确定PVT改变日志2的条目已满,则在360处,控制器可确定PVT改变日志1的所检索条目是否是存储在PVT改变日志1中的最后一个条目。
如果存在待执行的PVT改变日志1的额外条目(例如,如果PVT改变日志1的所检索条目不是PVT改变日志1的最后一个条目),则控制器可检索PVT改变日志1的下一条目且执行330到360,如上文所描述。
如果PVT改变日志1的所检索条目是PVT改变日志1的最后一个条目,则在365处,控制器可确定PVT改变日志2的条目是否已满。
如果控制器确定PVT改变日志2的条目已满,则控制器可执行370到375。举例来说,在370处,可清空存储在易失性存储器装置中的PVT映射的任何部分。举例来说,控制器可将存储在易失性存储器装置中的PVT映射的任何部分传送到非易失性存储器装置。
在375处,可合并PVT改变日志1和PVT改变日志2。举例来说,控制器可删除其中PVT映射的对应条目已更新的PVT改变日志1的任何条目。控制器可将PVT改变日志2的条目存储在PVT改变日志1中,且删除PVT改变日志2的所述条目。控制器可随后检索合并的PVT改变日志1的条目且执行330到365,如上文所描述。
如果控制器确定PVT改变日志2的条目未满,则控制器可确定所述一组取消映射命令中是否存在待执行的额外取消映射命令。如果存在待执行的额外取消映射命令,则控制器可执行305到375,如上文所描述。如果不存在待执行的额外取消映射命令但存在存储在PVT改变日志2中的条目,则控制器可如上文所描述使用存储在PVT改变日志2中的条目执行325到375。
如果不存在存储在PVT改变日志1和PVT改变日志2中的条目且不存在待执行的额外取消映射命令,则在380处,控制器可结束提升程序。
通过使用本文所描述的提升程序,控制器可减少控制器在易失性存储器装置与非易失性存储器装置之间传送PPT映射和PVT映射的部分的次数。举例来说,在一些情况下,如果后续取消映射命令的LBA包含在当前存储于易失性存储器装置中的PPT映射的一部分中,则控制器可制止在易失性存储器装置与非易失性存储器装置之间传送PPT映射的部分。另外或替代地,控制器可制止传送PVT映射的部分,直到一或多个PVT改变日志的条目已满为止。因此,控制器可在将PVT映射的一部分传送到非易失性存储器装置之前更新存储在易失性存储器装置中的由PVT改变日志指示的PVT映射的所述部分的所有条目。与使用默认程序执行取消映射命令相比,这可减小时延和功耗且增大与执行取消映射命令相关联的存储器系统性能。
图4展示根据本文所公开的实例的支持取消映射操作技术的存储器系统420的框图400。存储器系统420可以是参考图1到3所描述的存储器系统的各方面的实例。存储器系统420或其各种组件可以是用于执行本文中所描述的取消映射操作技术的各个方面的构件的实例。举例来说,存储器系统420可包含通信组件430、参数组件435、选择组件440、命令组件445、映射管理器450、改变日志管理器455、更新组件460、存储组件465,或其任何组合。这些组件中的每一者可直接或间接地(例如,经由一或多个总线)彼此通信。
通信组件430可被配置为或以其它方式支持用于接收多个取消映射命令的构件,所述多个取消映射命令中的每个取消映射命令包含与未使用的数据相关联的LBA。参数组件435可被配置为或以其它方式支持用于确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值的构件。选择组件440可被配置为或以其它方式支持用于至少部分地基于确定所述一或多个参数满足阈值而选择与用于执行所述多个取消映射命令的第二程序不同的用于执行所述多个取消映射命令的第一程序的构件。命令组件445可被配置为或以其它方式支持用于使用所述第一程序执行所述多个取消映射命令的构件。
在一些实例中,为了支持确定所述一或多个参数满足所述阈值,参数组件435可被配置为或以其它方式支持用于确定所述多个取消映射命令的队列深度满足深度阈值的构件。在一些实例中,为了支持确定所述一或多个参数满足阈值,参数组件435可被配置为或以其它方式支持用于确定所述多个取消映射命令是根据某一数据模式而发布的构件。
在一些实例中,为了支持使用第一程序执行所述多个取消映射命令,映射管理器450可被配置为或以其它方式支持用于将指示逻辑地址与物理地址之间的关系的第一映射的一部分从存储器系统的非易失性存储器装置传送到存储器系统的易失性存储器装置的构件,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一LBA。
在一些实例中,映射管理器450可被配置为或以其它方式支持用于更新与第一LBA相关联的第一映射的第一条目以指示第一LBA与第一物理地址解除关联的构件。在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目的构件,所述第二映射的第一条目指示存储在物理地址处的数据是否有效,所述第二映射的第一条目与第一取消映射命令所关联的第一物理地址相关联。
在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于将所述条目存储在改变日志中而确定所述改变日志的条目是否已满的构件。
在一些实例中,映射管理器450可被配置为或以其它方式支持用于至少部分地基于确定改变日志已满而确定包含第二映射的第一条目的第二映射的第一部分存储在易失性存储器装置中的构件。在一些实例中,更新组件460可被配置为或以其它方式支持用于至少部分地基于存储在改变日志中的条目以及确定第二映射的第一部分存储在易失性存储器装置中而更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据的构件。
在一些实例中,映射管理器450可被配置为或以其它方式支持用于至少部分地基于确定改变日志已满而确定包含第二映射的第一条目的第二映射的第一部分未存储在易失性存储器装置中的构件。在一些实例中,存储组件465可被配置为或以其它方式支持用于至少部分地基于确定第二映射的第一部分未存储在易失性存储器装置中而确定易失性存储器装置具有可用存储空间来存储第二映射的第一部分的构件。在一些实例中,映射管理器450可被配置为或以其它方式支持用于至少部分地基于确定易失性存储器装置具有可用存储空间来存储第二映射的第一部分而将第二映射的第一部分传送到易失性存储器装置的构件。在一些实例中,更新组件460可被配置为或以其它方式支持用于至少部分地基于存储在改变日志中的条目以及将第二映射的第一部分传送到易失性存储器装置而更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据的构件。
在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于确定所述改变日志的条目已满而确定存储在易失性存储器装置中的第二改变日志可用于存储额外条目的构件。在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于确定第二改变日志可用于存储额外条目而在第二改变日志中存储指示对第二映射的第一条目的更新的条目的构件。
在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于确定所述改变日志的条目已满而确定存储在易失性存储器装置中的第二改变日志的条目已满的构件。在一些实例中,映射管理器450可被配置为或以其它方式支持用于至少部分地基于确定第二改变日志的条目已满而将存储在易失性存储器装置中的第二映射的一或多个部分传送到非易失性存储器装置的构件。在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于至少部分地基于确定第二改变日志的条目已满而将所述改变日志和所述第二改变日志合并的构件。
在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于确定存储在所述改变日志中的条目是存储在所述改变日志中的最后一个条目的构件。在一些实例中,命令组件445可被配置为或以其它方式支持用于至少部分地基于确定存储在所述改变日志中的条目是存储在所述改变日志中的最后一个条目而确定多个取消映射命令中的一或多个取消映射命令正等待被执行的构件。在一些实例中,映射管理器450可被配置为或以其它方式支持用于至少部分地基于确定多个取消映射命令中的一或多个取消映射命令尚未执行而将第一映射的第二部分传送到易失性存储器装置的构件。
在一些实例中,改变日志管理器455可被配置为或以其它方式支持用于确定所述改变日志包含待执行的额外条目的构件。在一些实例中,更新组件460可被配置为或以其它方式支持用于至少部分地基于确定所述改变日志包含待执行的额外条目而检索存储在所述改变日志中的第二条目以更新第二映射的构件。
在一些实例中,映射管理器450可被配置为或以其它方式支持用于在至少部分地基于选择第一程序而使用第一程序执行多个取消映射命令之前将存储在易失性存储器装置中的数据传送到非易失性存储器装置的构件。在一些实例中,映射管理器450可被配置为或以其它方式支持用于分配易失性存储器装置的缓冲器以存储指示逻辑地址与物理地址之间的关系的第一映射的一部分以及指示存储在物理地址处的数据是否有效的第二映射的一或多个部分的构件。
在一些实例中,与多个取消映射命令相关联的一或多个参数包含取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二LBA大于第一取消映射命令的第一LBA,或其组合。
在一些实例中,第二程序是用于执行所述多个取消映射命令的默认程序。
图5展示说明根据本文所公开的实例的支持取消映射操作技术的方法500的流程图。方法500的操作可由本文中所描述的存储器系统或其组件实施。举例来说,方法500的操作可由参考图1到4所描述的存储器系统执行。在一些实例中,存储器系统可执行一组指令以控制装置的功能元件执行所描述的功能。另外或替代地,存储器系统可使用专用硬件来执行所描述的功能的各方面。
在505处,所述方法可包含接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包含与未使用的数据相关联的LBA。可根据本文中所公开的实例执行505的操作。在一些实例中,505的操作的各方面可由参考图4所描述的通信组件430来执行。
在510处,所述方法可包含确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值。可根据本文所公开的实例执行510的操作。在一些实例中,510的操作的各方面可由参考图4所描述的参数组件435执行。
在515处,所述方法可包含至少部分地基于确定所述一或多个参数满足阈值而选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同。可根据本文所公开的实例执行515的操作。在一些实例中,515的操作的各方面可由参考图4所描述的选择组件440执行。
在520处,所述方法可包含使用第一程序来执行所述多个取消映射命令。可根据本文所公开的实例执行520的操作。在一些实例中,520的操作的各方面可由参考图4所描述的命令组件445执行。
在一些实例中,如本文所描述的设备可执行例如方法500的一或多个方法。所述设备可包含特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体)以用于:接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包含与未使用的数据相关联的LBA;确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;至少部分地基于确定所述一或多个参数满足所述阈值,选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及使用所述第一程序执行所述多个取消映射命令。
在本文所描述的方法500和设备的一些实例中,确定所述一或多个参数满足阈值可包含操作、特征、电路系统、逻辑、构件或指令以用于确定所述多个取消映射命令的队列深度满足深度阈值以及确定所述多个取消映射命令可根据某一数据模式发布。
在本文所描述的方法500和设备的一些实例中,使用第一程序执行所述多个取消映射命令可包含操作、特征、电路系统、逻辑、构件或指令以用于将指示逻辑地址与物理地址之间的关系的第一映射的一部分从存储器系统的非易失性存储器装置传送到存储器系统的易失性存储器装置,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一LBA。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:更新可与第一LBA相关联的第一映射的第一条目以指示所述第一LBA可与第一物理地址解除关联;以及至少部分地基于第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目,所述第二映射的第一条目指示存储在物理地址处的数据是否可能有效,所述第二映射的第一条目与第一取消映射命令所关联的第一物理地址相关联。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于至少部分地基于将条目存储在改变日志中而确定所述改变日志的条目是否可能已满。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:至少部分地基于确定改变日志可能已满而确定包含第二映射的第一条目的第二映射的第一部分可能存储在易失性存储器装置中;以及至少部分地基于存储在改变日志中的条目且确定第二映射的第一部分可能存储在易失性存储器装置中而更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:至少部分地基于确定改变日志可能已满而确定包含第二映射的第一条目的第二映射的第一部分可能未存储在易失性存储器装置中;至少部分地基于确定第二映射的第一部分可能未存储在易失性存储器装置中而确定易失性存储器装置可具有可用存储空间以存储第二映射的第一部分;至少部分地基于确定易失性存储器装置可具有可用存储空间以存储第二映射的第一部分而将第二映射的第一部分传送到易失性存储器装置;以及至少部分地基于存储在改变日志中的条目以及将第二映射的第一部分传送到易失性存储器装置,更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:至少部分地基于确定所述改变日志的条目可能已满而确定存储在易失性存储器装置中的第二改变日志可用于存储额外条目;以及至少部分地基于确定第二改变日志可用于存储额外条目而在第二改变日志中存储指示对第二映射的第一条目的更新的条目。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:至少部分地基于确定改变日志的条目可能已满而确定存储在易失性存储器装置中的第二改变日志的条目可能已满;至少部分地基于确定第二改变日志的条目可能已满而将存储在易失性存储器装置中的第二映射的一或多个部分传送到非易失性存储器装置;以及至少部分地基于确定第二改变日志的条目可能已满而合并所述改变日志和第二改变日志。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:确定存储在改变日志中的条目可能是存储在改变日志中的最后一个条目;至少部分地基于确定存储在改变日志中的条目可能是存储在改变日志中的最后一个条目,确定多个取消映射命令中的一或多个取消映射命令可能在等待执行;以及至少部分地基于确定所述多个取消映射命令中的一或多个取消映射命令可能尚未执行,将第一映射的第二部分传送到易失性存储器装置。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:确定改变日志包含待执行的额外条目;以及至少部分地基于确定改变日志包含待执行的额外条目而检索存储在改变日志中的第二条目以更新第二映射。
本文所描述的方法500和设备的一些实例还可包含操作、特征、电路系统、逻辑、构件或指令以用于:在至少部分地基于选择第一程序而使用第一程序执行多个取消映射命令之前,将存储在易失性存储器装置中的数据传送到非易失性存储器装置;以及分配易失性存储器装置的缓冲器以存储指示逻辑地址与物理地址之间的关系的第一映射的一部分和指示存储在物理地址处的数据是否可能有效的第二映射的一或多个部分。
在本文所描述的方法500和设备的一些实例中,与多个取消映射命令相关联的一或多个参数包含取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二LBA可大于第一取消映射命令的第一LBA,或其组合。
在本文所描述的方法500和设备的一些实例中,第二程序可以是用于执行多个取消映射命令的默认程序。
应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个方法的部分。
描述一种设备。所述设备可包含:存储器系统,其包含易失性存储器装置和非易失性存储器装置;控制器,其与所述存储器系统耦合且可操作以使所述设备:接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包含与未使用的数据相关联的LBA;确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;至少部分地基于确定所述一或多个参数满足所述阈值,选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及使用所述第一程序执行所述多个取消映射命令。
在所述设备的一些实例中,为确定所述一或多个参数满足所述阈值,所述控制器还可经配置以使所述设备确定所述多个取消映射命令的队列深度满足深度阈值且确定所述多个取消映射命令可根据某一数据模式发布。
在所述设备的一些实例中,为使用第一程序执行所述多个取消映射命令,控制器还可经配置以使所述设备将指示逻辑地址与物理地址之间的关系的第一映射的一部分从非易失性存储器装置传送到易失性存储器装置,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一LBA。
在所述设备的一些实例中,控制器还可经配置以使所述设备:更新可与第一LBA相关联的第一映射的第一条目以指示所述第一LBA可与第一物理地址解除关联;以及至少部分地基于第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目,所述第二映射的第一条目指示存储在物理地址处的数据是否可能有效,所述第二映射的第一条目与第一取消映射命令所关联的第一物理地址相关联。
在所述设备的一些实例中,控制器还可经配置以使所述设备至少部分地基于将所述条目存储在改变日志中而确定所述改变日志的条目是否可能已满。
在所述设备的一些实例中,控制器还可经配置以使所述设备:至少部分地基于确定改变日志可能已满而确定包含第二映射的第一条目的第二映射的第一部分可能存储在易失性存储器装置中;以及至少部分地基于存储在改变日志中的条目且确定第二映射的第一部分可能存储在易失性存储器装置中而更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据。
在所述设备的一些实例中,控制器还可经配置以使设备:至少部分地基于确定改变日志可能已满而确定包含第二映射的第一条目的第二映射的第一部分可能未存储在易失性存储器装置中;至少部分地基于确定第二映射的第一部分可能未存储在易失性存储器装置中而确定易失性存储器装置可具有可用存储空间以存储第二映射的第一部分;至少部分地基于确定易失性存储器装置可具有可用存储空间以存储第二映射的第一部分而将第二映射的第一部分传送到易失性存储器装置;以及至少部分地基于存储在改变日志中的条目以及将第二映射的第一部分传送到易失性存储器装置,更新第二映射的第一条目以指示与第一取消映射命令相关联的第一物理地址存储无效数据。
在所述设备的一些实例中,控制器还可经配置以使所述设备:至少部分地基于确定所述改变日志的条目可能已满而确定存储在易失性存储器装置中的第二改变日志可用于存储额外条目;以及至少部分地基于确定第二改变日志可用于存储额外条目而在第二改变日志中存储指示对第二映射的第一条目的更新的条目。
在所述设备的一些实例中,控制器还可经配置以使所述设备:至少部分地基于确定改变日志的条目可能已满而确定存储在易失性存储器装置中的第二改变日志的条目可能已满;至少部分地基于确定第二改变日志的条目可能已满而将存储在易失性存储器装置中的第二映射的一或多个部分传送到非易失性存储器装置;以及至少部分地基于确定第二改变日志的条目可能已满而合并所述改变日志和第二改变日志。
在所述设备的一些实例中,控制器还可经配置以使所述设备:确定存储在改变日志中的条目可能是存储在改变日志中的最后一个条目;至少部分地基于确定存储在改变日志中的条目可能是存储在改变日志中的最后一个条目,确定多个取消映射命令中的一或多个取消映射命令可能在等待执行;以及至少部分地基于确定所述多个取消映射命令中的一或多个取消映射命令可能尚未执行,将第一映射的第二部分传送到易失性存储器装置。
在所述设备的一些实例中,控制器还可经配置以使所述设备:确定改变日志包含待执行的额外条目;以及至少部分地基于确定改变日志包含待执行的额外条目而检索存储在改变日志中的第二条目以更新第二映射。
在所述设备的一些实例中,控制器还可经配置以使所述设备:在至少部分地基于选择第一程序而使用第一程序执行多个取消映射命令之前将存储在易失性存储器装置中的数据传送到非易失性存储器装置;以及分配易失性存储器装置的缓冲器以存储指示逻辑地址与物理地址之间的关系的第一映射的一部分和指示存储在物理地址处的数据是否可能有效的第二映射的一或多个部分。
在所述设备的一些实例中,与多个取消映射命令相关联的一或多个参数包含取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二LBA可大于第一取消映射命令的第一LBA,或其组合。
在所述设备的一些实例中,第二程序可以是用于执行所述多个取消映射命令的默认程序。
可使用多种不同技术和技艺中的任一者来表示本文所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图可将信号说明为单个信号;然而,所述信号可表示信号的总线,其中所述总线可具有各种位宽度。
术语“如果”、“当”、“基于”、“至少部分地基于”和“响应于”可互换使用。举例来说,如果术语“如果”、“当”、“基于”、“至少部分地基于”和“响应于”用于描述过程的各部分之间的条件性动作或连接,则所述术语可互换使用。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则认为组件彼此电子连通(或彼此导电接触、或彼此连接、或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触、或彼此连接、或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前不能通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。如果例如控制器等组件将其它组件耦合在一起时,则所述组件发起改变以允许信号通过先前不准许信号流动的导电路径在其它组件之间流动。
术语“隔离”是指其中信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此分离。举例来说,由定位在两个组件之间的开关分隔开的所述组件在开关断开时彼此隔离。如果控制器隔离两个组件,则控制器实现改变以阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文所论述的包含存储器阵列的装置可形成在例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底为半导体晶片。在其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法来进行掺杂。
本文所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端可通过例如金属的导电材料连接到其它电子元件。源极和漏极可导电,且可包括经重掺杂半导体区,例如简并半导体区。源极和漏极可通过轻掺杂半导体区或沟道分离。如果沟道是n型(即,多数载流子是电子),则FET可称作n型FET。如果沟道是p型(即,多数载流子为空穴),则FET可称作p型FET。所述沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电率。举例来说,将正电压或负电压分别施加到n型FET或p型FET可使得沟道变为导电的。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“断开”或“解除激活”。
本文中结合附图阐述的描述内容描述了实例配置,且并不表示可实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示例性”是指“充当实例、例子或说明”,且并非“优选的”或“优于其它实例”。具体实施方式包含提供对所描述的技术的理解的具体细节。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式展示众所周知的结构和装置,以免混淆所描述实例的概念。
在附图中,类似的组件或特征可具有相同的参考标记。此外,可通过在参考标记之后跟着短划线和在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,则描述内容适用于具有相同第一参考标记而与第二参考标记无关的类似组件中的任一者。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合实施。如果在由处理器执行的软件中实施,则可将功能作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输。其它实例和实施方案在本公开和所附权利要求书的范围内。例如,归因于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一者的组合实施。实施功能的特征也可物理上位于各种位置处,包含经分布以使得功能的各部分在不同物理位置处实施。
举例来说,结合本文中的公开内容所描述的各种说明框和模块可通过经设计以执行本文中所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置)。
如本文(包含在权利要求书中)所使用,如在项列表(例如,在例如“中的至少一者”或“中的一或多者”之前的项列表)中所使用的“或”指示包含性列表,使得例如A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所使用,短语“基于”不应理解为参考封闭条件集。例如,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应以与短语“至少部分地基于”相同的方式理解。
计算机可读媒体包含非暂时性计算机存储媒体和通信媒体两种,所述通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。非暂时性储存媒体可以是可由通用或专用计算机存取的任何可用媒体。举例来说而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于承载或存储呈指令或数据结构形式的所期望程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。另外,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴线缆、光纤线缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,则所述同轴线缆、光纤线缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合也应包含在计算机可读媒体的范围内。
提供本文中的描述以使得所属领域的技术人员能够制出或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将是显而易见的,且本文所定义的一般原理可在不脱离本公开的范围的情况下应用于其它变型。因此,本公开不限于本文中所描述的实例和设计,而应被赋予与本文公开的原理和新颖特征一致的最广范围。
Claims (25)
1.一种设备,其包括:
存储器系统,其包括易失性存储器装置和非易失性存储器装置;以及
控制器,其与所述存储器系统耦合且可操作以使所述设备进行以下操作:
接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;
确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;
至少部分地基于确定所述一或多个参数满足所述阈值而选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及
使用所述第一程序执行所述多个取消映射命令。
2.根据权利要求1所述的设备,其中为确定所述一或多个参数满足所述阈值,所述控制器还经配置以使所述设备进行以下操作:
确定所述多个取消映射命令的队列深度满足深度阈值;以及
确定所述多个取消映射命令是根据某一数据模式发布。
3.根据权利要求1所述的设备,其中与所述多个取消映射命令相关联的所述一或多个参数包括取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二逻辑块地址大于所述第一取消映射命令的第一逻辑块地址,或其组合。
4.根据权利要求1所述的设备,其中为了使用所述第一程序执行所述多个取消映射命令,所述控制器还经配置以使所述设备进行以下操作:
将指示逻辑地址与物理地址之间的关系的第一映射的一部分从所述非易失性存储器装置传送到所述易失性存储器装置,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一逻辑块地址。
5.根据权利要求4所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
更新与所述第一逻辑块地址相关联的所述第一映射的第一条目以指示所述第一逻辑块地址与第一物理地址解除关联;以及
至少部分地基于所述第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目,所述第二映射的所述第一条目指示存储在物理地址处的数据是否有效,所述第二映射的所述第一条目与所述第一取消映射命令所关联的所述第一物理地址相关联。
6.根据权利要求5所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
至少部分地基于将所述条目存储在所述改变日志中而确定所述改变日志的条目是否已满。
7.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
至少部分地基于确定所述改变日志已满,确定包括所述第二映射的所述第一条目的所述第二映射的第一部分存储在所述易失性存储器装置中;以及
至少部分地基于存储在所述改变日志中的所述条目且确定所述第二映射的所述第一部分存储在所述易失性存储器装置中而更新所述第二映射的所述第一条目以指示与所述第一取消映射命令相关联的所述第一物理地址存储无效数据。
8.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
至少部分地基于确定所述改变日志已满,确定包括所述第二映射的所述第一条目的所述第二映射的第一部分未存储在所述易失性存储器装置中;
至少部分地基于确定所述第二映射的所述第一部分未存储在所述易失性存储器装置中而确定所述易失性存储器装置具有可用存储空间以存储所述第二映射的所述第一部分;
至少部分地基于确定所述易失性存储器装置具有所述可用存储空间来存储所述第二映射的所述第一部分而将所述第二映射的所述第一部分传送到所述易失性存储器装置;以及
至少部分地基于存储在所述改变日志中的所述条目且将所述第二映射的所述第一部分传送到所述易失性存储器装置而更新所述第二映射的所述第一条目以指示与所述第一取消映射命令相关联的所述第一物理地址存储无效数据。
9.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
至少部分地基于确定所述改变日志的条目已满而确定存储在所述易失性存储器装置中的第二改变日志可用于存储额外条目;以及
至少部分地基于确定所述第二改变日志可用于存储所述额外条目而在所述第二改变日志中存储指示对所述第二映射的所述第一条目的所述更新的条目。
10.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
至少部分地基于确定所述改变日志的条目已满而确定存储在所述易失性存储器装置中的第二改变日志的条目已满;
至少部分地基于确定所述第二改变日志的条目已满而将存储在所述易失性存储器装置中的所述第二映射的一或多个部分传送到所述非易失性存储器装置;以及
至少部分地基于确定所述第二改变日志的条目已满而合并所述改变日志和所述第二改变日志。
11.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
确定存储在所述改变日志中的所述条目是存储在所述改变日志中的最后一个条目;
至少部分地基于确定存储在所述改变日志中的所述条目是存储在所述改变日志中的所述最后一个条目而确定所述多个取消映射命令中的一或多个取消映射命令正等待被执行;以及
至少部分地基于确定所述多个取消映射命令中的所述一或多个取消映射命令尚未执行而将所述第一映射的第二部分传送到所述易失性存储器装置。
12.根据权利要求6所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
确定所述改变日志包含待执行的额外条目;以及
至少部分地基于确定所述改变日志包含待执行的所述额外条目而检索存储在所述改变日志中的第二条目以更新所述第二映射。
13.根据权利要求1所述的设备,其中所述控制器还经配置以使所述设备进行以下操作:
在至少部分地基于选择所述第一程序而使用所述第一程序执行所述多个取消映射命令之前将存储在所述易失性存储器装置中的数据传送到所述非易失性存储器装置;以及
分配所述易失性存储器装置的缓冲器以存储指示逻辑地址与物理地址之间的关系的第一映射的一部分和指示存储在物理地址处的数据是否有效的第二映射的一或多个部分。
14.根据权利要求1所述的设备,其中所述第二程序是用于执行所述多个取消映射命令的默认程序。
15.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时使所述电子装置:
接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;
确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;
至少部分地基于确定所述一或多个参数满足所述阈值而选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及
使用所述第一程序执行所述多个取消映射命令。
16.根据权利要求15所述的非暂时性计算机可读媒体,其中为确定所述一或多个参数满足所述阈值,所述指令在由所述电子装置的所述处理器执行时还使所述电子装置:
确定所述多个取消映射命令的队列深度满足深度阈值;以及
确定所述多个取消映射命令是根据某一数据模式发布。
17.根据权利要求15所述的非暂时性计算机可读媒体,其中为使用所述第一程序执行所述多个取消映射命令,所述指令在由所述电子装置的所述处理器执行时还使所述电子装置将指示逻辑地址与物理地址之间的关系的第一映射的一部分从非易失性存储器装置传送到易失性存储器装置,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一逻辑块地址。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时还使所述电子装置:
更新与所述第一逻辑块地址相关联的所述第一映射的第一条目以指示所述第一逻辑块地址与第一物理地址解除关联;以及
至少部分地基于所述第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目,所述第二映射的所述第一条目指示存储在物理地址处的数据是否有效,所述第二映射的所述第一条目与所述第一取消映射命令所关联的所述第一物理地址相关联。
19.根据权利要求18所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时还使所述电子装置至少部分地基于将所述条目存储在所述改变日志中而确定所述改变日志的条目已满。
20.根据权利要求15所述的非暂时性计算机可读媒体,其中与所述多个取消映射命令相关联的所述一或多个参数包括取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二逻辑块地址大于所述第一取消映射命令的第一逻辑块地址,或其组合。
21.一种由存储器系统执行的方法,其包括:
接收多个取消映射命令,所述多个取消映射命令中的每个取消映射命令包括与未使用的数据相关联的逻辑块地址;
确定与所述多个取消映射命令相关联的一或多个参数是否满足阈值;
至少部分地基于确定所述一或多个参数满足所述阈值而选择用于执行所述多个取消映射命令的第一程序,所述第一程序与用于执行所述多个取消映射命令的第二程序不同;以及
使用所述第一程序执行所述多个取消映射命令。
22.根据权利要求21所述的方法,其中确定所述一或多个参数满足所述阈值包括:
确定所述多个取消映射命令的队列深度满足深度阈值;以及
确定所述多个取消映射命令是根据某一数据模式发布。
23.根据权利要求21所述的方法,其中使用所述第一程序执行所述多个取消映射命令包括:
将指示逻辑地址与物理地址之间的关系的第一映射的一部分从所述存储器系统的非易失性存储器装置传送到所述存储器系统的易失性存储器装置,所述第一映射的所述部分包含所述多个取消映射命令中的第一取消映射命令的第一逻辑块地址。
24.根据权利要求23所述的方法,其还包括:
更新与所述第一逻辑块地址相关联的所述第一映射的第一条目以指示所述第一逻辑块地址与第一物理地址解除关联;以及
至少部分地基于所述第一取消映射命令而在改变日志中存储指示对第二映射的第一条目的更新的条目,所述第二映射的所述第一条目指示存储在物理地址处的数据是否有效,所述第二映射的所述第一条目与所述第一取消映射命令所关联的所述第一物理地址相关联。
25.根据权利要求21所述的方法,其中与所述多个取消映射命令相关联的所述一或多个参数包括取消映射命令的量、队列深度、在所述多个取消映射命令中的第一取消映射命令之后所接收的所述多个取消映射命令中的第二取消映射命令的第二逻辑块地址大于所述第一取消映射命令的第一逻辑块地址,或其组合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/122,174 US11755490B2 (en) | 2020-12-15 | 2020-12-15 | Unmap operation techniques |
US17/122,174 | 2020-12-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114639418A true CN114639418A (zh) | 2022-06-17 |
Family
ID=81942555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111530695.0A Pending CN114639418A (zh) | 2020-12-15 | 2021-12-14 | 取消映射操作技术 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11755490B2 (zh) |
CN (1) | CN114639418A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891416A (zh) * | 2024-03-18 | 2024-04-16 | 厦门大学 | 基于scsi协议的取消映射操作优化方法、装置及可读介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606329B1 (en) * | 2022-05-12 | 2023-03-14 | Verizon Patent And Licensing Inc. | Systems and methods for performance monitoring of service mesh-based environments |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324600B1 (en) * | 1999-02-19 | 2001-11-27 | International Business Machines Corporation | System for controlling movement of data in virtual environment using queued direct input/output device and utilizing finite state machine in main memory with two disjoint sets of states representing host and adapter states |
US20020048277A1 (en) * | 2000-05-01 | 2002-04-25 | Bennett Jon C.R. | Packetized data discard |
US10193829B2 (en) * | 2013-03-12 | 2019-01-29 | Omega Switching Systems, Llc | Indefinitely expandable high-capacity data switch |
US10684795B2 (en) * | 2016-07-25 | 2020-06-16 | Toshiba Memory Corporation | Storage device and storage control method |
WO2020007030A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种系统控制器和系统垃圾回收方法 |
KR20200006378A (ko) * | 2018-07-10 | 2020-01-20 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
KR20200074647A (ko) * | 2018-12-17 | 2020-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200085967A (ko) * | 2019-01-07 | 2020-07-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11157199B1 (en) * | 2020-04-24 | 2021-10-26 | International Business Machines Corporation | Multi-mode address mapping management |
-
2020
- 2020-12-15 US US17/122,174 patent/US11755490B2/en active Active
-
2021
- 2021-12-14 CN CN202111530695.0A patent/CN114639418A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891416A (zh) * | 2024-03-18 | 2024-04-16 | 厦门大学 | 基于scsi协议的取消映射操作优化方法、装置及可读介质 |
CN117891416B (zh) * | 2024-03-18 | 2024-05-14 | 厦门大学 | 基于scsi协议的取消映射操作优化方法、装置及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220188237A1 (en) | 2022-06-16 |
US11755490B2 (en) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907556B2 (en) | Data relocation operation techniques | |
CN114625671A (zh) | 存储器装置的动态逻辑页大小 | |
CN114639418A (zh) | 取消映射操作技术 | |
US20240220162A1 (en) | Integrated pivot table in a logical-to-physical mapping | |
CN115729848A (zh) | 直接逻辑到物理地址映射 | |
CN114647378A (zh) | 用于垃圾收集的有效数据标识 | |
CN114822670A (zh) | 有效数据感知媒体可靠性扫描 | |
CN113870928A (zh) | 智能工厂重置程序 | |
CN115705162A (zh) | 用于非连续逻辑地址的技术 | |
WO2022040914A1 (en) | Unmap backlog in a memory system | |
CN114756167A (zh) | 使用压缩存储器的读取操作 | |
CN114443514A (zh) | 用于存储器系统的存储器单元存取技术 | |
CN115605850A (zh) | 用于逻辑到物理表压缩的数据组织 | |
CN114077394A (zh) | 将存储器系统数据传送到辅助阵列 | |
CN114520016B (zh) | 用于存储器地址区的激活和去激活的增强 | |
US11989133B2 (en) | Logical-to-physical mapping compression techniques | |
CN113885786B (zh) | 用于垃圾收集的数据分离 | |
CN114546895B (zh) | 主机侧存储器地址管理 | |
US11977758B2 (en) | Assigning blocks of memory systems | |
US20240281383A1 (en) | Buffer expansion for random write operations | |
US12111769B2 (en) | Validity mapping techniques | |
US20220300208A1 (en) | Memory read performance techniques | |
US20210373908A1 (en) | Data techniques for system boot procedures | |
CN114546893A (zh) | 用于地址映射数据的分离高速缓存器 | |
CN118502655A (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 |