CN114968085A - 数据重定位操作技术 - Google Patents

数据重定位操作技术 Download PDF

Info

Publication number
CN114968085A
CN114968085A CN202210127895.XA CN202210127895A CN114968085A CN 114968085 A CN114968085 A CN 114968085A CN 202210127895 A CN202210127895 A CN 202210127895A CN 114968085 A CN114968085 A CN 114968085A
Authority
CN
China
Prior art keywords
program
block
data
memory cells
data relocation
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
Application number
CN202210127895.XA
Other languages
English (en)
Inventor
P·帕帕
L·埃斯波西托
M·亚库洛
G·德利塞奥
A·萨萨拉
C·曼加内利
S·德普雷特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114968085A publication Critical patent/CN114968085A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及数据重定位操作技术。一种存储器系统可包含例如所述存储器系统的非易失性存储器装置内的存储器单元块。所述存储器系统可识别进行与存储器单元块相关联的数据重定位操作的命令,且可在用于进行所述数据重定位操作的第一程序与第二程序之间进行选择。所述存储器系统可基于与所述数据重定位操作相关联的一或多个参数是否满足阈值而在所述第一程序与所述第二程序之间进行选择。举例来说,如果所述一或多个参数满足所述阈值,那么所述存储器系统可选择所述第一程序,且如果所述一或多个参数不满足所述阈值,那么所述存储器系统可选择所述第二程序。所述存储器系统可使用选定程序进行所述数据重定位操作。

Description

数据重定位操作技术
交叉引用
本专利申请要求2021年2月18日由帕帕(Papa)等人申请的标题为“数据重定位操作技术(DATA RELOCATION OPERATION TECHNIQUES)”的美国临时专利申请第63/150,901号的优先权,所述申请转让给本受让人,且所述申请明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及数据重定位操作技术。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器和其类似物的各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。举例来说,二进制存储器单元可编程到两个所支持状态中的一个,通常对应于逻辑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)、虚拟地址、系统地址或其它逻辑地址)引用数据(例如,如果发布与数据相关联的读取、写入或其它命令),且存储器装置可产生且维护与数据相关联的逻辑地址与存储数据的存储器单元的物理地址之间的映射,这可支持存储器装置随时间推移而改变物理地址。
存储器系统可进行数据重定位操作(例如,垃圾收集操作、动态耗损均衡操作、可靠性重定位操作、协议特定折叠操作、刷新操作、回流后重定位操作或某一其它数据重定位操作)以释放、合并或重定位存储器系统的存储空间。在一些实例中,数据重定位操作可与存储器系统的存储器单元块相关联。举例来说,响应于进行数据重定位操作的命令,存储器系统可定位存储器单元块的有效页(即,含有有效数据的页)且将有效页写入到新存储器单元块。另外,存储器系统可更新与有效页相关联的逻辑地址与存储有效页的新块的存储器单元的物理地址之间的映射。然而,在一些情况下,与数据重定位操作相关联的存储器单元块可包含相对较大数量的有效页(例如,存储器单元块的约80%的页为有效页,或存储器单元块的某一其它百分比的页为有效页)。用于进行数据重定位操作的一些程序可归因于定位较大数量的有效页和更新写入到新存储器单元块的每一有效页的映射而增加存储器系统的等待时间和电力消耗。因此,可需要改进用于进行数据重定位操作的程序的技术。
本文中描述用于通过基于或响应于与数据重定位操作相关联的一或多个参数选择用于进行数据重定位操作的不同程序而提高数据重定位操作性能的技术、系统和装置。举例来说,存储器系统可识别进行与存储器单元块相关联的数据重定位操作的命令;响应于识别到命令,存储器系统可基于或响应于与数据重定位操作相关联的一或多个参数是否满足阈值而在稀疏数据重定位程序与密集数据重定位程序之间进行选择。举例来说,如果一或多个参数满足阈值(例如,如果存储器单元块的阈值百分比的页为有效页),那么存储器系统可选择密集数据程序,且如果一或多个参数不满足阈值,那么存储器系统可选择稀疏数据程序。存储器系统可使用选定程序进行数据重定位操作。在一些实例中,密集数据程序可包含将存储器单元块的有效页和无效页写入到新存储器单元块而不更新指示逻辑地址与物理地址之间的关系的映射的过程。这种过程可消除或减少与定位存储器单元块的有效页相关联的等待时间且更新映射,且进而减少用于进行数据重定位操作的等待时间。在一些情况下,如本文中所描述,密集数据程序可减少等待时间和电力消耗,且提高与进行数据重定位操作相关联的存储器系统性能。
首先在参考图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的接口,所述主机系统控制器106可为配置成使得主机系统105根据如本文中所描述的实例进行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和由处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统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)或可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能相关的内部存储或计算的另一存储器。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,如果从存储器装置130读取或写入到存储器装置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)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、电可擦除可编程ROM(EEPROM),或其任何组合。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含RAM存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可(例如,在同一裸片上或在同一封装内)包含本地控制器135,其可对相应存储器装置130的一或多个存储器单元执行操作。本地控制器135可结合存储器系统控制器115操作,或可进行本文中归于存储器系统控制器115的一或多个功能。举例来说,如图1中所说明,存储器装置130-a可包含本地控制器135-a,且存储器装置130-b可包含本地控制器135-b。
在一些情况下,存储器装置130可为或包含NAND装置(例如,NAND快闪装置)。存储器装置130可为或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可为包含一或多个裸片160的封装。在一些实例中,裸片160可为从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,且每一平面165可包含相应块170集合,其中每一块170可包含相应页175集合,且每一页175可包含存储器单元集合。
在一些情况下,NAND存储器装置130可包含配置成各自存储一个信息位的存储器单元,其可称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,那么其可称为多层级单元(MLC),如果配置成各自存储三个信息位,那么其可称为三层级单元(TLC),如果配置成各自存储四个信息位,那么其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可指块170群组,且在一些情况下,可在不同平面165内发生并行操作。举例来说,可对不同块170内的存储器单元进行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中进行并行操作可能经受一或多个限制,例如对不同页175内的存储器单元进行相同操作,所述存储器单元在其相应平面165内具有相同页地址(例如,与命令解码、页地址解码电路系统,或跨平面165共享的其它电路系统相关)。
在一些情况下,块170可包含组织成行(页175)和列(例如串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),且同一串中的存储器单元可共享共同数字线(其可替代地称为位线)(例如,与其耦合)。
在一些实例中,一或多个块170集合可称为虚拟块。虚拟块的块170集合中的每一块170可包含一定数量的页175。虚拟块的页线可指虚拟块的页175的单个行。举例来说,对应于虚拟块的第一行的页线可包含块170集合中的每一块170的第一页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接收到的数据)。
存储器系统控制器115或本地控制器135可识别进行数据重定位操作的命令,所述数据重定位操作可为一或多个媒体管理操作、耗损均衡操作、垃圾收集操作、折叠操作或其任何组合的实例,如本文中所描述。在一些实例中,数据重定位操作可与虚拟块相关联。用于进行数据重定位操作的一些程序可包含更新与虚拟块的有效页175相关联的逻辑地址与存储有效页175的新虚拟块的存储器单元的物理地址之间的映射。然而,在一些情况下,虚拟块可包含相对较大数量的页175。另外,相对较大百分比的页175可为有效页175。用于进行数据重定位操作的这种程序可归因于更新每一有效页175的映射而增加系统100的等待时间和电力消耗。
为了减少与进行数据重定位操作相关联的等待时间和电力消耗,存储器系统控制器115或本地控制器135可基于或响应于与数据重定位操作相关联的一或多个参数而从用于进行数据重定位操作的一或多个程序选择程序。举例来说,存储器系统控制器115或本地控制器135可识别进行与动态块相关联的数据重定位操作的命令。响应于识别命令,存储器系统控制器115或本地控制器135可基于或响应于与数据重定位操作相关联的一或多个参数是否满足阈值而在稀疏数据重定位程序与密集数据重定位程序之间进行选择。举例来说,如果一或多个参数满足阈值(例如,如果存储器单元块的阈值百分比的页为有效页),那么存储器系统控制器115或本地控制器135可选择密集数据程序,且如果一或多个参数不满足阈值,那么存储器系统控制器115或本地控制器135可选择稀疏数据程序。存储器系统控制器115或本地控制器135可使用选定程序进行数据重定位操作。在一些实例中,密集数据程序可包含将存储器单元块的有效页和无效页写入到新存储器单元块而不更新映射的过程,进而消除或减少与更新映射相关联的等待时间。另外,通过在动态块层级处在密集数据重定位程序与稀疏数据重定位程序之间进行选择,存储器系统控制器115和本地控制器135可提高虚拟块层级处的数据重定位操作性能。
系统100可包含支持数据重定位操作技术的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以进行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,那么这种指令可使得主机系统105、存储器系统控制器115或存储器装置130进行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为MNAND系统。
图2说明根据如本文所公开的实例的支持数据重定位操作技术的数据方案200的实例。可通过如参考图1所描述的系统100的组件实施数据方案200。举例来说,数据方案200可由例如存储器装置130的存储器系统的存储器装置和例如存储器系统控制器115或本地控制器135的存储器系统或存储器装置(或两者)的控制器实施,如参考图1所描述。在一些实例中,数据方案200可为由控制器用以进行如本文中所描述的数据重定位操作的存储器单元的逻辑表示和组织。
数据方案200描绘虚拟块205。虚拟块205可为一或多个块210的逻辑分组,其中每一块210可为如参考图1所描述的块170的实例。举例来说,控制器可将块210-a、块210-b和块210-c分组,且可将群组称为虚拟块205。控制器可将索引指派到虚拟块205,控制器可使用所述索引来定位虚拟块205且存取虚拟块205的存储器单元。出于说明性目的,图2将虚拟块205描绘为包含三个块210,然而本文中所公开的原理可适于且应用于虚拟块205以包含任何数量的块210。
块210-a、210-b和210-c中的每一个可包含一定数量的页220,其可为如参考图1所描述的页175的实例。虚拟块205的页线可指虚拟块205的页220的单个行。举例来说,对应于虚拟块205的顶部行的页线可包含块210-a、块210-b和块210-c的顶部页220。动态块215可指虚拟块205的页线的逻辑分组。举例来说,动态块215-a可包含虚拟块205的前四个页线;动态块215-b可包含虚拟块205的下四个页线;且动态块215-c可包含虚拟块205的最后四个页线。在一些实例中,可预先配置包含在相应动态块215中的页线的数量。在一些其它实例中,控制器可配置包含在相应动态块215中的页线的数量。控制器可将索引指派到每一动态块215,控制器可使用所述索引来定位相应动态块215且存取相应动态块215的存储器单元。
控制器可产生、维护和存储将动态块215的索引映射到对应虚拟块205的第一映射。举例来说,将动态块215-a映射到虚拟块205的第一映射的条目可包含与动态块215-a相关联的第一索引、与虚拟块205相关联的第二索引,和虚拟块205内的动态块215-a的偏移。因此,通过读取第一映射的条目,控制器可确定动态块215-a所位于的虚拟块205以及动态块215-a在虚拟块205内的位置。在一些实例中,第一映射可称为动态块阵列表。
控制器可产生、维护和存储指示逻辑地址与对应物理地址之间的关系的第二映射。举例来说,第二映射的条目可将页220的逻辑地址映射到页220的对应物理地址。因此,通过读取第二映射的条目,控制器可确定页220的物理地址。在一些实例中,第二映射可为将逻辑地址(例如,LBA)映射到与控制器耦合的非易失性存储器装置(例如,存储器装置130、NAND装置或某一其它非易失性存储器装置)的对应物理地址的实例物理指针表(PPT)。在一些情况下,第二映射可为L2P映射表的实例。在一些实例中,为了更新第二映射(例如,如果页220中所含有的数据写入到不同页220),控制器可加载第二映射的包含待更新到存储器系统的易失性存储器装置(例如,本地存储器120、包含易失性存储器单元的存储器装置130)中的条目的至少一部分,更新条目,且将第二映射的所述部分卸载到存储器系统的非易失性存储器装置130(例如,包含非易失性存储器单元的存储器装置130)。
控制器可识别进行与动态块215相关联的数据重定位操作的命令,且可在密集数据重定位程序与稀疏数据重定位程序之间进行选择以进行数据重定位操作。为了使用密集数据重定位操作进行数据重定位操作,控制器可读取存储在相关联动态块215处的数据且将数据写入到(例如,不同虚拟块205的)第二动态块215。举例来说,如果数据重定位操作与动态块215-a相关联,那么控制器可读取存储在包含于动态块215-a中的页220中的每一个中的数据,且可将所述数据写入到第二动态块215的页220。在一些实例中,动态块215-a可包含含有有效数据的页220和含有无效数据的一或多个页220中的一或多个。这里,控制器可读取含有有效数据的页220和含有无效数据的页220两者,且可将有效数据和无效数据两者写入到第二动态块215。在一些实例中,控制器可以数据写入到动态块215-a的相同次序将从动态块215-a读取的数据写入到第二动态块215。换句话说,使用密集数据重定位程序进行数据重定位操作可包含将动态块215-a复制到第二动态块215。
另外,为了使用密集数据程序进行数据重定位操作,控制器可更新第一映射以指示相关联动态块215的更新后的位置,且可制止更新第二映射。举例来说,控制器可更新与动态块215-a相关联的第一映射的条目。为了更新第一映射的条目,控制器可更新条目的第二索引以指示与第二动态块215相关联的虚拟块205,且可更新偏移以指示动态块215-a在虚拟块205内的位置。因为第二动态块215为动态块215-a的副本(例如,动态块215-a改变位置),所以控制器可制止更新第二映射。替代地,控制器可随后使用更新后的第一映射(例如,结合未更新的第二映射)来确定第二动态块215的页220的物理地址。
替代地,为了使用稀疏数据重定位程序进行数据重定位操作,控制器可确定与含有有效数据的数据重定位程序相关联的动态块215的页220,且可将含有有效数据的页写入到(例如,不同虚拟块205的)第二动态块215。举例来说,如果数据重定位操作与动态块215-b相关联,那么控制器可确定包含在动态块215-b中的哪些页220含有有效数据且可将含有有效数据的页220写入到第二动态块215。另外,更新第二映射以将写入到第二动态块215的页220的逻辑地址映射到第二动态块215的对应物理地址。
与使用稀疏数据重定位程序相比,密集数据重定位程序可减少与进行数据重定位操作相关联的等待时间。举例来说,可使用以下等式估计(例如,计算)与使用密集数据重定位程序进行数据重定位操作相关联的第一等待时间:
L1=CI*(tDL+tDF) (1)
其中L1为第一等待时间,CI为复制到第二动态块215的页220的数量(例如,包含在动态块215-a中的页220的数量),tDL为将从动态块215读取的数据加载到易失性存储器装置的时间量,且tDF为刷新来自易失性存储器装置的数据的时间量。另外,可使用以下等式估计(例如,计算)与使用稀疏数据重定位程序进行数据重定位操作相关联的第二等待时间:
L2=T*[tTL+M*(tTS+tDL)+tTU+tTF]+Cstd*tDF (2)
其中L2为第二等待时间,T为待从易失性存储器装置加载/卸载的第二映射的部分的数量,tTL为加载第二映射的一部分的时间量,M为每第二映射的部分与有效页相关联的逻辑地址的平均数量,tTS为定位第二映射的一部分的时间量,tDL为将从动态块215读取的数据加载到易失性存储器装置的时间量,tTU为更新加载到易失性存储器装置中的第二映射的一部分的时间量,tTF为卸载第二映射的一部分的时间量,Cstd为复制到第二动态块215的页220的数量(例如,包含在含有有效数据的动态块215-b中的页220的数量),且tDF为刷新来自易失性存储器装置的数据的时间量。
随着T和M的值增大,与稀疏数据重定位程序相关联的第二等待时间相对于与密集数据重定位程序相关联的第一等待时间增加。另外,Cstd的值通常可小于CI的值。然而,随着Cstd的值增大,第二等待时间相对于第一等待时间的增大,因为CI的值可保持相对静态。因此,随着动态块215的含有有效数据的页的数量增加,密集数据重定位程序可相对于稀疏数据重定位程序变得越来越快。作为实例,使用密集数据重定位程序对B16CNAND装置进行的碎片整理操作可比使用稀疏数据重定位程序快大约2.5倍。因此,使用密集数据重定位程序可减少与进行数据重定位操作相关联的等待时间。
在一些实例中,数据重定位操作可与虚拟块205相关联。这里,控制器可独立地选择程序以进行用于虚拟块205的每一动态块215的数据重定位操作。举例来说,控制器可选择密集数据重定位程序以对动态块215-a和动态块215-c进行数据重定位操作,且选择稀疏数据重定位程序以对动态块215-b进行数据重定位操作。控制器可基于或响应于与用于相应动态块215的数据重定位操作相关联的一或多个参数是否满足一或多个相关联阈值而选择对应程序以对相应动态块215进行数据重定位操作。以此方式,控制器可实施统一数据重定位方法,所述统一数据重定位方法选择程序以在每动态块基础上进行数据重定位操作。
图3说明根据如本文中所公开的实例的支持数据重定位操作技术的过程流程300的实例。过程流程300可由存储器系统(例如参考图1所描述的存储器系统110)的组件进行。举例来说,过程流程300可由存储器系统或存储器装置(或两者)的控制器(例如如参考图1所描述的存储器系统控制器115或本地控制器135)进行。过程流程300可描绘选择用于进行数据重定位操作的程序和使用选定程序进行数据重定位操作的过程,所述过程可实施以减少等待时间和电力消耗且提高系统性能,以及其它益处。过程流程300的方面可由控制器以及其它组件实施。另外或替代地,过程流程300的方面可实施为存储在存储器中的指令(例如,存储在与存储器系统控制器115或本地控制器135耦合的存储器中的固件)。举例来说,如果由控制器(例如,存储器系统控制器115、本地控制器135)执行,那么指令可使得控制器进行过程流程300的操作。
在过程流程300的以下描述中,操作可以不同次序或在不同时间进行。也可从过程流程300省略一些操作,或可将其它操作添加到过程流程300。
在305处,可识别进行数据重定位操作的命令。举例来说,控制器可识别进行数据重定位操作的命令,其中数据重定位操作与与控制器耦合的存储器装置(例如,包含非易失性存储器单元的非易失性存储器装置)的动态块(例如,动态块215)相关联。为了识别命令,在一些实例中,控制器可从与控制器耦合的主机系统接收命令。在一些其它实例中,为了识别命令,控制器可起始数据重定位操作。
在310处,可关于一或多个参数是否满足相关联的一或多个阈值来评估与数据重定位操作相关联的一或多个参数。与数据重定位操作相关联的一或多个参数的实例可包含动态块的含有有效数据的页的百分比、与数据重定位操作相关联的等待时间、数据重定位操作的类型、与控制器耦合的主机系统的状态、动态块的含有有效数据的页的数量,或其任何组合。
控制器可确定一或多个参数是否满足一或多个相关联阈值。举例来说,控制器可确定动态块的含有有效数据的页的百分比是否满足阈值有效页百分比(例如,动态块的80%的页为有效页,或某一其它阈值有效页百分比)、与数据重定位操作相关联的等待时间是否满足阈值等待时间(例如,与使用稀疏数据重定位程序进行数据重定位操作相关联的等待时间是否满足阈值等待时间、与使用密集数据重定位程序进行数据重定位操作相关联的等待时间是否满足阈值等待时间)、数据重定位的类型是否为数据重定位操作的特定类型(例如,类型是否对应于前台操作、后台操作或某一其它操作类型)、主机系统是否处于空闲状态、动态块的含有有效数据的页的数量是否满足阈值有效页数量,或其组合。
控制器可维护计数器以确定动态块的含有有效数据的页的百分比是否满足阈值有效页百分比,或动态块的含有有效数据的页的数量是否满足阈值有效页数量,或两者。举例来说,控制器可产生、维护和存储跟踪动态块的含有有效数据的页的数量的计数器。控制器可将由计数器指示的含有有效数据的页的数量与动态块的页的总数量相比较,以计算动态块的含有有效数据的页的百分比。控制器可接着比较计算出的百分比与阈值有效页百分比以确定计算出的百分比是否满足阈值有效页百分比。另外或替代地,控制器可将由计数器指示的动态块的含有有效数据的页的数量与阈值有效页数量相比较,以确定动态块的含有有效数据的页的数量是否满足阈值有效页数量。在一些实例中,计数器可称为动态有效页计数器。
如果在310处,控制器确定一或多个参数满足相关联的一或多个阈值,那么控制器可如下进行315和320。举例来说,如果控制器确定动态块的含有有效数据的页的百分比大于(例如,或等于)阈值有效页百分比、使用稀疏数据重定位程序进行数据重定位操作将不满足等待时间阈值、数据重定位操作与前台操作相关联、主机系统处于除空闲状态外的状态、动态块的含有有效数据的页的数量大于(例如,或等于)阈值有效页数量,或其组合,那么控制器可如下进行315和320。
在315处,可选择密集数据重定位程序。举例来说,控制器可基于或响应于确定一或多个参数是否满足(例如,确定一或多个参数满足)相关联的一或多个阈值而选择密集数据重定位程序以进行数据重定位操作。
在320处,可使用密集数据重定位程序进行数据重定位操作,如参考图2所描述。举例来说,为了使用密集数据重定位程序进行数据重定位操作,控制器可读取存储在与数据重定位操作相关联的动态块处的数据,且将从动态块读取的数据写入到第二动态块。在一些实例中,动态块可包含有效页和无效页两者。这里,控制器可将有效页的有效数据和无效页的无效数据两者写入到第二动态块。
如果在310处,控制器确定一或多个参数不满足相关联的一或多个阈值,那么控制器可如下进行325和330。举例来说,如果控制器确定动态块的含有有效数据的页的百分比小于(例如,或等于)阈值有效页百分比、使用稀疏数据重定位程序进行数据重定位操作将满足等待时间阈值、数据重定位操作与后台操作相关联、主机系统处于空闲状态、动态块的含有有效数据的页的数量小于(例如,或等于)阈值有效页数量,或其组合,那么控制器可如下进行325和330。
在325处,可选择稀疏数据重定位程序。举例来说,控制器可基于或响应于确定一或多个参数是否不满足(例如,确定一或多个参数不满足)相关联的一或多个阈值而选择稀疏数据重定位程序以进行数据重定位操作。
在330处,可使用稀疏数据重定位程序进行数据重定位操作,如参考图2所描述。举例来说,为了使用稀疏数据重定位程序进行数据重定位操作,控制器可将动态块的含有有效数据的页写入到第二动态块。这里,控制器可制止将动态块的含有无效数据的页写入到第二动态块。另外,控制器可更新指示逻辑地址与物理地址之间的关系的映射(例如,PPT、L2P表或某一其它逻辑到物理映射),以将与写入到第二动态块的页相关联的逻辑地址映射到第二动态块的对应物理地址。
图4展示根据如本文中所公开的实例的支持数据重定位操作技术的存储器系统420的框图400。存储器系统420可为如参考图1至3所描述的存储器系统的方面的实例。存储器系统420或其各种组件可为用于进行如本文中所描述的数据重定位操作技术的各种方面的构件的实例。举例来说,存储器系统420可包含命令组件425、选择组件430、数据重定位组件435、参数组件440、映射组件445或其任何组合。这些组件中的每一个可直接或间接地(例如,经由一或多个总线)彼此通信。
命令组件425可配置为或以其它方式支持用于识别进行与存储器系统的存储器单元块相关联的数据重定位操作的命令的构件。选择组件430可配置为或以其它方式支持用于至少部分地基于与数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行数据重定位操作的第一程序与用于进行数据重定位操作的第二程序之间进行选择的构件。数据重定位组件435可配置为或以其它方式支持用于至少部分地基于识别命令和在第一程序与第二程序之间进行选择而使用第一程序或第二程序进行数据重定位操作的构件。
在一些实例中,参数组件440可配置为或以其它方式支持用于确定一或多个参数是否满足阈值的构件。在一些实例中,选择组件430可配置为或以其它方式支持用于至少部分地基于确定一或多个参数满足阈值而选择第一程序的构件。在一些实例中,数据重定位组件435可配置为或以其它方式支持用于至少部分地基于选择第一程序而使用第一程序进行数据重定位操作的构件。
在一些实例中,为了支持使用第一程序进行数据重定位操作,数据重定位组件435可配置为或以其它方式支持用于读取存储在存储器单元块处的数据的构件。在一些实例中,为了支持使用第一程序进行数据重定位操作,数据重定位组件435可配置为或以其它方式支持用于将从存储器单元块读取的数据写入到第二存储器单元块的构件。
在一些实例中,存储器单元块可包含与有效数据相关联的一或多个页和与无效数据相关联的一或多个页,且数据重定位组件435可配置为或以其它方式支持用于至少部分地基于使用第一程序进行数据重定位操作而将与有效数据相关联的一或多个页和与无效数据相关联的一或多个页写入到第二存储器单元块的构件。
在一些实例中,映射组件445可配置为或以其它方式支持用于至少部分地基于使用第一程序进行数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目的构件,更新后的第一条目包含与第二存储器单元块相关联的第一索引、与包含第二存储器单元块的第一存储器单元块群组相关联的第二索引,和第一存储器单元块群组内的第二存储器单元块的偏移。
在一些实例中,映射组件445可配置为或以其它方式支持用于至少部分地基于使用第一程序进行数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射的构件。
在一些实例中,为了支持确定一或多个参数是否满足阈值,参数组件440可配置为或以其它方式支持用于维护与存储器单元块相关联的计数器的构件,所述计数器跟踪存储器单元块的与有效数据相关联的页的数量。在一些实例中,为了支持确定一或多个参数是否满足阈值,参数组件440可配置为或以其它方式支持用于确定存储器单元块的与有效数据相关联的页的数量是否满足与有效数据相关联的页的阈值数量的构件。
在一些实例中,参数组件440可配置为或以其它方式支持用于确定一或多个参数是否不满足阈值的构件。在一些实例中,选择组件430可配置为或以其它方式支持用于至少部分地基于确定一或多个参数不满足阈值而选择第二程序的构件。在一些实例中,数据重定位组件435可配置为或以其它方式支持用于至少部分地基于选择第二程序而使用第二程序进行数据重定位操作的构件。
在一些实例中,为了支持使用第二程序进行数据重定位操作,数据重定位组件435可配置为或以其它方式支持用于将存储器单元块的与有效数据相关联的页写入到第二存储器单元块的构件。在一些实例中,为了支持使用第二程序进行数据重定位操作,映射组件445可配置为或以另外方式支持用于更新指示逻辑地址与物理地址之间的关系的映射以将与写入到第二存储器单元块的页相关联的逻辑地址映射到第二存储器单元块的对应物理地址的构件。
在一些实例中,命令组件425可配置为或以另外方式支持用于从与存储器系统耦合的主机系统接收进行数据重定位操作的命令的构件,其中识别进行数据重定位操作的命令是至少部分地基于从主机系统接收进行数据重定位操作的命令。
在一些实例中,数据重定位组件435可配置为或以其它方式支持用于由存储器系统起始数据重定位操作的构件,其中识别进行数据重定位操作的命令是至少部分地基于起始数据重定位操作。
在一些实例中,与数据重定位操作相关联的一或多个参数包含存储器单元块的包含有效数据的页的百分比、与数据重定位操作相关联的等待时间、数据重定位操作的类型、与存储器系统耦合的主机系统的状态,或其任何组合。
在一些实例中,存储器系统的非易失性存储器装置包含存储器单元块。
图5展示说明根据如本文中所公开的实例的支持数据重定位操作技术的方法500的流程图。方法500的操作可由如本文中所描述的存储器系统或其组件实施。举例来说,方法500的操作可由参考图1至4所描述的存储器系统进行。在一些实例中,存储器系统可执行指令集以控制装置的功能元件进行所描述的功能。另外或替代地,存储器系统可使用专用硬件来进行所描述的功能的方面。
在505处,方法可包含识别进行与存储器系统的存储器单元块相关联的数据重定位操作的命令。可根据如本文中所公开的实例进行505的操作。在一些实例中,可由如参考图4所描述的命令组件425进行505的操作的方面。
在510处,方法可包含至少部分地基于与数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行数据重定位操作的第一程序与用于进行数据重定位操作的第二程序之间进行选择。可根据如本文中所公开的实例进行510的操作。在一些实例中,可由如参考图4所描述的选择组件430进行510的操作的方面。
在515处,方法可包含至少部分地基于识别命令和在第一程序与第二程序之间进行选择而使用第一程序或第二程序进行数据重定位操作。可根据如本文中所公开的实例进行515的操作。在一些实例中,可由如参考图4所描述的数据重定位组件435进行515的操作的方面。
在一些实例中,如本文中所描述的设备可进行一或多种方法,例如方法500。设备可包含用于以下操作的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):识别进行与存储器系统的存储器单元块相关联的数据重定位操作的命令;至少部分地基于与数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行数据重定位操作的第一程序与用于进行数据重定位操作的第二程序之间进行选择;和至少部分地基于识别命令和在第一程序与第二程序之间进行选择而使用第一程序或第二程序进行数据重定位操作。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定一或多个参数是否满足阈值,其中在第一程序与第二程序之间进行选择包含至少部分地基于确定一或多个参数满足阈值而选择第一程序,且使用第一程序或第二程序进行数据重定位操作包含至少部分地基于选择第一程序而使用第一程序进行数据重定位操作。
在本文中所描述的方法500和设备的一些实例中,使用第一程序进行数据重定位操作可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:读取存储在存储器单元块处的数据,和将从存储器单元块读取的数据写入到第二存储器单元块。
在本文中所描述的方法500和设备的一些实例中,存储器单元块可包含与有效数据相关联的一或多个页和与无效数据相关联的一或多个页,且方法、设备和非暂时性计算机可读媒体可包含用于以下操作的另外的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于使用第一程序进行数据重定位操作而将与有效数据相关联的一或多个页和与无效数据相关联的一或多个页写入到第二存储器单元块。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于使用第一程序进行数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目的构件,更新后的第一条目包含与第二存储器单元块相关联的第一索引、与包含第二存储器单元块的第一存储器单元块群组相关联的第二索引,和第一存储器单元块群组内的第二存储器单元块的偏移。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于使用第一程序进行数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射。
在本文中所描述的方法500和设备的一些实例中,确定一或多个参数是否满足阈值可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:维护与存储器单元块相关联的计数器,所述计数器跟踪存储器单元块的可与有效数据相关联的页的数量,和确定存储器单元块的可与有效数据相关联的页的数量是否满足与有效数据相关联的页的阈值数量。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:确定一或多个参数是否不满足阈值,其中在第一程序与第二程序之间进行选择包含至少部分地基于确定一或多个参数不满足阈值而选择第二程序,且使用第一程序或第二程序进行数据重定位操作包含至少部分地基于选择第二程序而使用第二程序进行数据重定位操作。
在本文中所描述的方法500和设备的一些实例中,使用第二程序进行数据重定位操作可包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:将存储器单元块的可与有效数据相关联的页写入到第二存储器单元块,和更新指示逻辑地址与物理地址之间的关系的映射以将与写入到第二存储器单元块的页相关联的逻辑地址映射到第二存储器单元块的对应物理地址。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:从与存储器系统耦合的主机系统接收进行数据重定位操作的命令,其中识别进行数据重定位操作的命令可至少部分地基于从主机系统接收进行数据重定位操作的命令。
本文中所描述的方法500和设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、构件或指令:由存储器系统起始数据重定位操作,其中识别进行数据重定位操作的命令可至少部分地基于起始数据重定位操作。
在本文中所描述的方法500和设备的一些实例中,与数据重定位操作相关联的一或多个参数包含存储器单元块的包含有效数据的页的百分比、与数据重定位操作相关联的等待时间、数据重定位操作的类型、与存储器系统耦合的主机系统的状态,或其任何组合。
在本文中所描述的方法500和设备的一些实例中,存储器系统的非易失性存储器装置包含存储器单元块。
应注意,上文所描述的方法描述可能实施方案,且操作和步骤可重新布置或以其它方式加以修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种设备。所述设备可包含:存储器系统;控制器,其与所述存储器系统耦合且可操作以使得所述设备:识别进行与所述存储器系统的存储器单元块相关联的数据重定位操作的命令;至少部分地基于与所述数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行所述数据重定位操作的第一程序与用于进行所述数据重定位操作的第二程序之间进行选择;和至少部分地基于识别所述命令和在所述第一程序与所述第二程序之间进行选择而使用所述第一程序或所述第二程序进行所述数据重定位操作。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备确定与所述数据重定位操作相关联的所述一或多个参数是否满足所述阈值,其中在所述第一程序与所述第二程序之间进行选择包含至少部分地基于确定所述一或多个参数满足所述阈值而选择所述第一程序;且使用所述第一程序或所述第二程序进行所述数据重定位操作包含至少部分地基于选择所述第一程序而使用所述第一程序进行所述数据重定位操作。
在所述设备的一些实例中,为了使用所述第一程序进行所述数据重定位操作,所述控制器可进一步配置成使得所述设备读取存储在所述存储器单元块处的数据,和将从所述存储器单元块读取的所述数据写入到第二存储器单元块。
在所述设备的一些实例中,所述存储器单元块包含与有效数据相关联的一或多个页和与无效数据相关联的一或多个页,且所述控制器进一步配置成使得所述设备至少部分地基于使用所述第一程序进行所述数据重定位操作而将与有效数据相关联的所述一或多个页和与无效数据相关联的所述一或多个页写入到所述第二存储器单元块。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备至少部分地基于使用所述第一程序进行所述数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目,更新后的第一条目包含与所述第二存储器单元块相关联的第一索引、与包含所述第二存储器单元块的第一存储器单元块群组相关联的第二索引,和所述第一存储器单元块群组内的所述第二存储器单元块的偏移。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备至少部分地基于使用所述第一程序进行所述数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射。
在所述设备的一些实例中,为了确定所述一或多个参数是否满足所述阈值,所述控制器可进一步配置成使得所述设备维护与所述存储器单元块相关联的计数器,所述计数器跟踪所述存储器单元块的可与有效数据相关联的页的数量,和确定所述存储器单元块的可与有效数据相关联的页的所述数量是否满足与有效数据相关联的页的阈值数量。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备确定所述一或多个参数是否不满足所述阈值,其中在所述第一程序与所述第二程序之间进行选择包含至少部分地基于确定所述一或多个参数不满足所述阈值而选择所述第二程序,且使用所述第一程序或所述第二程序进行所述数据重定位操作包含至少部分地基于选择所述第二程序而使用所述第二程序进行所述数据重定位操作。
在所述设备的一些实例中,为了使用所述第二程序进行所述数据重定位操作,所述控制器可进一步配置成使得所述设备将所述存储器单元块的可与有效数据相关联的页写入到第二存储器单元块,和更新指示逻辑地址与物理地址之间的关系的映射以将与写入到所述第二存储器单元块的所述页相关联的逻辑地址映射到所述第二存储器单元块的对应物理地址。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备从与所述存储器系统耦合的主机系统接收进行所述数据重定位操作的所述命令,其中识别进行所述数据重定位操作的所述命令可至少部分地基于从所述主机系统接收进行所述数据重定位操作的所述命令。
在所述设备的一些实例中,所述控制器可进一步配置成使得所述设备由所述存储器系统起始所述数据重定位操作,其中识别进行所述数据重定位操作的所述命令可至少部分地基于起始所述数据重定位操作。
在所述设备的一些实例中,与所述数据重定位操作相关联的所述一或多个参数包含所述存储器单元块的包含有效数据的页的百分比、与所述数据重定位操作相关联的等待时间、所述数据重定位操作的类型、与所述存储器系统耦合的主机系统的状态,或其任何组合。
在所述设备的一些实例中,所述存储器系统的非易失性存储器装置包含所述存储器单元块。
可使用各种不同技术和技艺中的任一种来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。一些附图可将信号说明为单个信号;然而,所述信号可表示信号总线,其中所述总线可具有各种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么认为组件彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可为开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管的一或多个中间组件来中断所连接组件之间的信号的流动持续一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在所述开路关系中,信号当前不能够经由导电路径在所述组件之间传达,在所述闭路关系中,信号能够经由所述导电路径在所述组件之间传达。如果例如控制器的组件将其它组件耦合在一起,那么组件起始允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能够在组件之间流动的组件之间的关系。如果组件之间存在开路,那么组件彼此隔离。举例来说,由位于两个组件之间的开关分隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,那么控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当……时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,那么术语可互换。
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。举例来说,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指作为先前条件或动作的直接结果而发生的一个条件或动作。在一些实例中,可进行第一条件或动作,且可作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件进行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其它条件或动作而进行。
本文中所论述的包含存储器阵列的装置可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等的半导体衬底上。在一些实例中,衬底为半导体晶片。在一些其它实例中,衬底可为绝缘体上硅(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.根据权利要求2所述的设备,其中为了使用所述第一程序进行所述数据重定位操作,所述控制器进一步配置成使得所述设备:
读取存储在所述存储器单元块处的数据;以及
将从所述存储器单元块读取的所述数据写入到第二存储器单元块。
4.根据权利要求3所述的设备,其中:
所述存储器单元块包括与有效数据相关联的一或多个页以及与无效数据相关联的一或多个页;且
所述控制器进一步配置成使得所述设备至少部分地基于使用所述第一程序进行所述数据重定位操作而将与有效数据相关联的所述一或多个页以及与无效数据相关联的所述一或多个页写入到所述第二存储器单元块。
5.根据权利要求3所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于使用所述第一程序进行所述数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目,更新后的第一条目包括与所述第二存储器单元块相关联的第一索引、与包括所述第二存储器单元块的第一存储器单元块群组相关联的第二索引,以及所述第一存储器单元块群组内的所述第二存储器单元块的偏移。
6.根据权利要求2所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于使用所述第一程序进行所述数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射。
7.根据权利要求2所述的设备,其中为了确定所述一或多个参数是否满足所述阈值,所述控制器进一步配置成使得所述设备:
维护与所述存储器单元块相关联的计数器,所述计数器跟踪所述存储器单元块的与有效数据相关联的页的数量;以及
确定所述存储器单元块的与有效数据相关联的页的所述数量是否满足与有效数据相关联的页的阈值数量。
8.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
确定所述一或多个参数是否不满足所述阈值,其中:
在所述第一程序与所述第二程序之间进行选择包括至少部分地基于确定所述一或多个参数不满足所述阈值而选择所述第二程序;且
使用所述第一程序或所述第二程序进行所述数据重定位操作包括至少部分地基于选择所述第二程序而使用所述第二程序进行所述数据重定位操作。
9.根据权利要求8所述的设备,其中为了使用所述第二程序进行所述数据重定位操作,所述控制器进一步配置成使得所述设备:
将所述存储器单元块的与有效数据相关联的页写入到第二存储器单元块;以及
更新指示逻辑地址与物理地址之间的关系的映射以将与写入到所述第二存储器单元块的所述页相关联的逻辑地址映射到所述第二存储器单元块的对应物理地址。
10.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
从与所述存储器系统耦合的主机系统接收进行所述数据重定位操作的所述命令,其中识别进行所述数据重定位操作的所述命令是至少部分地基于从所述主机系统接收进行所述数据重定位操作的所述命令。
11.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
由所述存储器系统起始所述数据重定位操作,其中识别进行所述数据重定位操作的所述命令是至少部分地基于起始所述数据重定位操作。
12.根据权利要求1所述的设备,其中与所述数据重定位操作相关联的所述一或多个参数包括所述存储器单元块的包括有效数据的页的百分比、与所述数据重定位操作相关联的等待时间、所述数据重定位操作的类型、与所述存储器系统耦合的主机系统的状态,或其任何组合。
13.根据权利要求1所述的设备,其中所述存储器系统的非易失性存储器装置包括所述存储器单元块。
14.一种存储代码的非暂时性计算机可读媒体,所述代码包括指令,所述指令在由电子装置的处理器执行时使得所述电子装置:
识别进行与存储器系统的存储器单元块相关联的数据重定位操作的命令;
至少部分地基于与所述数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行所述数据重定位操作的第一程序与用于进行所述数据重定位操作的第二程序之间进行选择;以及
至少部分地基于识别所述命令以及在所述第一程序与所述第二程序之间进行选择而使用所述第一程序或所述第二程序进行所述数据重定位操作。
15.根据权利要求14所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
确定所述一或多个参数是否满足所述阈值,其中:
在所述第一程序与所述第二程序之间进行选择包括至少部分地基于确定所述一或多个参数满足所述阈值而选择所述第一程序;且
使用所述第一程序或所述第二程序进行所述数据重定位操作包括至少部分地基于选择所述第一程序而使用所述第一程序进行所述数据重定位操作。
16.根据权利要求15所述的非暂时性计算机可读媒体,其中为了使用所述第一程序进行所述数据重定位操作,所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
读取存储在所述存储器单元块处的数据;以及
将从所述存储器单元块读取的所述数据写入到第二存储器单元块。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中:
所述存储器单元块包括与有效数据相关联的一或多个页以及与无效数据相关联的一或多个页;且
所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置至少部分地基于使用所述第一程序进行所述数据重定位操作而将与有效数据相关联的所述一或多个页以及与无效数据相关联的所述一或多个页写入到所述第二存储器单元块。
18.根据权利要求16所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
至少部分地基于使用所述第一程序进行所述数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目,更新后的第一条目包括与所述第二存储器单元块相关联的第一索引、与包括所述第二存储器单元块的第一存储器单元块群组相关联的第二索引,以及所述第一存储器单元块群组内的所述第二存储器单元块的偏移。
19.根据权利要求15所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
至少部分地基于使用所述第一程序进行所述数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射。
20.一种由存储器系统进行的方法,其包括:
识别进行与所述存储器系统的存储器单元块相关联的数据重定位操作的命令;
至少部分地基于与所述数据重定位操作相关联的一或多个参数是否满足阈值而在用于进行所述数据重定位操作的第一程序与用于进行所述数据重定位操作的第二程序之间进行选择;以及
至少部分地基于识别所述命令以及在所述第一程序与所述第二程序之间进行选择而使用所述第一程序或所述第二程序进行所述数据重定位操作。
21.根据权利要求20所述的方法,其进一步包括:
确定所述一或多个参数是否满足所述阈值,其中:
在所述第一程序与所述第二程序之间进行选择包括至少部分地基于确定所述一或多个参数满足所述阈值而选择所述第一程序;且
使用所述第一程序或所述第二程序进行所述数据重定位操作包括至少部分地基于选择所述第一程序而使用所述第一程序进行所述数据重定位操作。
22.根据权利要求21所述的方法,其中使用所述第一程序进行所述数据重定位操作包括:
读取存储在所述存储器单元块处的数据;以及
将从所述存储器单元块读取的所述数据写入到第二存储器单元块。
23.根据权利要求22所述的方法,其中所述存储器单元块包括与有效数据相关联的一或多个页以及与无效数据相关联的一或多个页,所述方法包括:
至少部分地基于使用所述第一程序进行所述数据重定位操作而将与有效数据相关联的所述一或多个页以及与无效数据相关联的所述一或多个页写入到所述第二存储器单元块。
24.根据权利要求22所述的方法,其进一步包括:
至少部分地基于使用所述第一程序进行所述数据重定位操作而更新将与存储器单元块相关联的索引映射到存储器单元块群组的映射的第一条目,更新后的第一条目包括与所述第二存储器单元块相关联的第一索引、与包括所述第二存储器单元块的第一存储器单元块群组相关联的第二索引,以及所述第一存储器单元块群组内的所述第二存储器单元块的偏移。
25.根据权利要求21所述的方法,其进一步包括:
至少部分地基于使用所述第一程序进行所述数据重定位操作而制止更新指示逻辑地址与物理地址之间的关系的映射。
CN202210127895.XA 2021-02-18 2022-02-11 数据重定位操作技术 Pending CN114968085A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163150901P 2021-02-18 2021-02-18
US63/150,901 2021-02-18
US17/580,296 2022-01-20
US17/580,296 US11907556B2 (en) 2021-02-18 2022-01-20 Data relocation operation techniques

Publications (1)

Publication Number Publication Date
CN114968085A true CN114968085A (zh) 2022-08-30

Family

ID=82610778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210127895.XA Pending CN114968085A (zh) 2021-02-18 2022-02-11 数据重定位操作技术

Country Status (4)

Country Link
US (1) US11907556B2 (zh)
KR (1) KR20220118313A (zh)
CN (1) CN114968085A (zh)
DE (1) DE102022102980A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615858B2 (en) * 2021-06-08 2023-03-28 Micron Technology, Inc. Media management operations based on health characteristics of memory cells
US11894060B2 (en) * 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407449B1 (en) * 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
JP5722685B2 (ja) * 2011-04-12 2015-05-27 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
JP2013174975A (ja) * 2012-02-23 2013-09-05 Toshiba Corp メモリシステムとそのデータ書き込み方法
US8892815B2 (en) * 2012-09-13 2014-11-18 Sandisk Technologies Inc. Optimized fragmented block compaction with a bitmap
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
CN111562880A (zh) * 2019-02-14 2020-08-21 英韧科技(上海)有限公司 一种数据存储装置、系统及数据写入方法
US11126360B2 (en) * 2019-10-22 2021-09-21 International Business Machines Corporation Dynamically adjusting block mode pool sizes

Also Published As

Publication number Publication date
US11907556B2 (en) 2024-02-20
DE102022102980A1 (de) 2022-08-18
KR20220118313A (ko) 2022-08-25
US20220261153A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
US11907556B2 (en) Data relocation operation techniques
CN114625671A (zh) 存储器装置的动态逻辑页大小
CN115904221A (zh) 高速缓存块预算技术
CN115248662A (zh) 动态超级块
CN114639418A (zh) 取消映射操作技术
CN114822670A (zh) 有效数据感知媒体可靠性扫描
US20230185713A1 (en) Valid data identification for garbage collection
CN115729848A (zh) 直接逻辑到物理地址映射
CN115373909A (zh) 存储器系统中的故障管理技术
US20230297501A1 (en) Techniques for accessing managed nand
CN114691031A (zh) 基于分片操作的存储器系统的存取
CN114297091A (zh) 存储器装置处的多个快闪转换层
CN114077394A (zh) 将存储器系统数据传送到辅助阵列
US11989133B2 (en) Logical-to-physical mapping compression techniques
CN114546895B (zh) 主机侧存储器地址管理
US11520525B2 (en) Integrated pivot table in a logical-to-physical mapping having entries and subsets associated via a flag
CN114520016B (zh) 用于存储器地址区的激活和去激活的增强
WO2022193143A1 (en) Validity mapping techniques
US20240020016A1 (en) Metadata allocation in memory systems
WO2022193212A1 (en) Memory read performance techniques
US20230015332A1 (en) Split cache for address mapping data
US20230359551A1 (en) Techniques for a fragment cursor
WO2022193231A1 (en) Dynamic memory management operation
CN115114075A (zh) 冗余阵列管理技术
CN115705900A (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