CN114297091A - 存储器装置处的多个快闪转换层 - Google Patents

存储器装置处的多个快闪转换层 Download PDF

Info

Publication number
CN114297091A
CN114297091A CN202111152599.7A CN202111152599A CN114297091A CN 114297091 A CN114297091 A CN 114297091A CN 202111152599 A CN202111152599 A CN 202111152599A CN 114297091 A CN114297091 A CN 114297091A
Authority
CN
China
Prior art keywords
data
flash translation
translation layer
ftl
mapping information
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
CN202111152599.7A
Other languages
English (en)
Inventor
D·A·帕尔默
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 CN114297091A publication Critical patent/CN114297091A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请针对存储器装置处的多个快闪转换层FTL。基于数据的一或多个特性,第一FTL可配置成支持使用经定义粒度的数据映射,且第二FTL可配置成支持使用小于所述经定义粒度的粒度的数据映射或不匹配所述经定义粒度的数据的映射。存储器装置可基于所述数据的所述一或多个特性在所述FTL之间进行选择以映射数据,并且可将所述数据写入到所述存储器装置。所述存储器装置可使用选择的FTL存储与所述数据相关联的逻辑到物理映射,以及其它信息。

Description

存储器装置处的多个快闪转换层
交叉引用
本专利申请要求帕尔默(Palmer)于2020年10月7日提交的标题为“存储器装置处的多个快闪转换层(MULTIPLE FLASH TRANSLATION LAYERS AT A MEMORY DEVICE)”的第17/065,455号美国专利申请的优先权,所述申请转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及存储器装置处的多个快闪转换层(FTL)。
背景技术
存储器装置广泛用于在各种电子装置中存储信息,例如计算机、无线通信装置、相机、数字显示器等等。信息通过将存储器装置内的存储器单元编程为各种状态来存储。例如,二进制存储器单元可编程成两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持超过两个可能状态,其中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程为对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。易失性存储器单元(例如,DRAM单元)可随时间推移而丢失它们的编程状态,除非它们通过外部电源周期性地刷新。非易失性存储器单元(例如,NAND存储器单元)可将它们的编程状态维持很长一段时间,即使在不存在外部电源的情况下也如此。
发明内容
描述一种设备。所述设备可包含存储器阵列和与所述存储器阵列耦合的控制器。所述控制器可配置成:使所述设备接收数据和在所述设备处存储所述数据的命令;至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可存储包括指令的代码,所述指令在由电子装置的处理器执行时可使所述电子装置:接收数据和在所述电子装置处存储所述数据的命令;至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
描述一种方法。所述方法可由存储器装置执行。所述方法可包含:在所述存储器装置处接收数据和在所述存储器装置处存储所述数据的命令;至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
附图说明
图1示出根据本文所公开的实例的支持存储器装置处的多个快闪转换层(FTL)的系统的实例。
图2示出根据本文所公开的实例的支持存储器装置处的多个FTL的架构的实例。
图3示出根据本文所公开的实例的支持存储器装置处的多个FTL的流程图的实例。
图4示出根据本文所公开的实例的支持存储器装置处的多个FTL的映射方案的实例。
图5示出根据本文所公开的实例的支持存储器装置处的多个FTL的存储器装置的框图。
图6示出根据本文所公开的实例的示出支持存储器装置处的多个FTL的一或多种方法的流程图。
具体实施方式
一种存储器装置可包含快闪转换层(FTL),它尤其可支持数据存储和管理。例如,FTL可执行逻辑到物理(L2P)地址映射、垃圾收集、耗损均衡、错误校正码(ECC)程序,或不良块管理,或其它操作,或其任何组合。在一些情况下,FTL可使用经定义粒度支持数据映射(例如,L2P映射)。例如,经定义粒度可支持管理L2P映射时增加的空间和时间效率,使得匹配经定义粒度的数据可以增加的速度和准确性进行写入和读取。在一些情况下,要写入到存储器装置的数据可与小于经定义粒度的粒度相关联。例如,数据可小于经定义粒度,或者可以对准,使得数据的一部分小于经定义粒度,或者可无法匹配用于存储数据的一或多个空闲物理地址的物理粒度。在这些和其它情况中,存储器装置可执行读取、修改和写入操作以写入数据,因为与数据相关联的粒度可能无法匹配经定义粒度。读取、修改和写入操作可为读取、修改或写入数据引入额外时延,并且还可能增加写入放大和耗损,这可能会缩减装置寿命和装置性能,还存在其它缺点。
本公开提供用于包含和使用存储器装置内的两个或更多个FTL的技术,其中第一FTL(例如,使用较大粒度的主FTL)可配置成支持使用经定义粒度的数据映射,且第二FTL(例如,次FTL或较小FTL)可配置成支持使用小于经定义粒度的粒度的数据映射。例如,第一FTL可用于映射匹配经定义粒度的数据,这可表示存储在存储器装置处的大部分数据。第二FTL可用于映射不匹配经定义粒度的其它数据。例如,如果数据大小小于经定义粒度,或如果一或多个数据子集的对准未能匹配第一FTL的数据对准,或如果数据的大小或对准未能匹配空闲物理位置(例如,与第一FTL相关联)的大小或对准,那么存储器装置可选择第二FTL来管理数据映射(单独地或联合第一FTL一起)。因此,存储器装置可在FTL之间进行选择以映射数据,例如,基于数据的一或多个特性。在FTL之间选择可支持更高的L2P效率、更高的高速缓存命中率以及减小的用于匹配经定义粒度的数据的存储器块预算,同时减小与写入未能匹配经定义粒度的数据相关联的时延和耗损(例如,通过去除或减少与使用一个FTL相关联的读取、修改和写入操作)。
本公开的特征初始是在参考图1所描述的系统的上下文中描述。本公开的特征在参考图2-4所描述的装置架构、流程图和映射方案的上下文中描述。本公开的这些和其它特征进一步由参考图5和6所描述的涉及存储器装置处的多个FTL的设备图和流程图示出,并参考这些图描述。
图1是根据本文所公开的实例的支持存储器装置处的多个FTL的系统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本地或包含在主机系统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或存储器装置140的相应物理主机接口或经由用于包含在存储器系统110中的每个类型的存储器装置130或存储器装置140的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115、存储器装置130和存储器装置140。存储器装置130可包含第一类型的存储器单元(例如,非易失性存储器单元的类型)的一或多个存储器阵列,存储器装置140可包含第二类型的存储器单元(例如,易失性存储器单元的类型)的一或多个存储器阵列。尽管图1的实例中示出一个存储器装置130和一个存储器装置140,但是应理解,存储器系统110可包含任何数量的存储器装置130和存储器装置140,并且在一些情况下,存储器系统110可以没有存储器装置130或存储器装置140。
存储器系统控制器115可与主机系统105耦合并与其通信(例如,经由物理主机接口),并且可以是配置成使存储器系统110根据如本文中所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130或存储器装置140耦合并与其通信以执行操作,例如在存储器装置130或存储器装置140处读取数据、写入数据、擦除数据或刷新数据,及其它这类操作,这些可统称为存取操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令,并与一或多个存储器装置130或存储器装置140通信以执行此类命令(例如,在所述一或多个存储器装置130或存储器装置140内的存储器阵列处)。例如,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现存储器装置130或存储器装置140的所需存取。并且,在一些情况下,存储器系统控制器115可与主机系统105及一或多个存储器装置130或存储器装置140交换数据(例如,响应于来自主机系统105的命令或以其它方式与所述命令相关联)。例如,存储器系统控制器115可将与存储器装置130或存储器装置140相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可配置成用于与存储器装置130或存储器装置140相关联的其它操作。例如,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、错误检测操作或错误校正操作等错误控制操作、加密操作、高速缓存操作、媒体管理操作、背景刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130或存储器装置140内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑以执行本文中属于存储器系统控制器115的操作的电路系统。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它可存储操作代码(例如,可执行指令)的存储器,所述操作代码可由存储器系统控制器115执行以执行本文中属于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它可供存储器系统控制器115用于内部存储或计算的存储器,例如,与本文中属于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可用作存储器系统控制器115的高速缓存。例如,在从存储器装置130或存储器装置140读取或向其写入时,数据可以存储到本地存储器120,并且可在本地存储器120内供主机系统105(例如,相对于存储器装置130或存储器装置140具有减小的时延)用于后续根据高速缓存策略进行检索或操控(例如,更新)。
尽管图1中的存储器系统110的实例已经示出为包含存储器系统控制器115,但在一些情况下,存储器系统110可能不包含存储器系统控制器115。例如,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或一或多个本地控制器135或本地控制器145,它们可分别在存储器装置130或存储器装置140内部,以执行本文中属于存储器系统控制器115的功能。一般来说,本文中属于存储器系统控制器115的一或多个功能在一些情况下实际可由主机系统105、本地控制器135或本地控制器145或其任何组合执行。
存储器装置140可包含一或多个易失性存储器单元阵列。例如,存储器装置140可包含随机存取存储器(RAM)存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。在一些实例中,存储器装置140可支持相对于存储器装置130具有减小的时延的随机存取操作(例如,由主机系统105进行),或者可提供相对于存储器装置130的一或多个其它性能差异。
存储器装置130可包含一或多个非易失性存储器单元阵列。例如,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。
在一些实例中,存储器装置130或存储器装置140可分别包含(例如,在同一裸片上或在同一封装内)本地控制器135或本地控制器145,它们可在存储器装置130或存储器装置140的一或多个存储器单元上执行操作。本地控制器135或本地控制器145可结合存储器系统控制器115操作,或者可执行本文中属于存储器系统控制器115的一或多个功能。在一些情况下,包含本地控制器135或本地控制器145的存储器装置130或存储器装置140可以称为受管理存储器装置,并且可包含存储器阵列和与本地(例如,裸片上或封装内)控制器(例如,本地控制器135或本地控制器145)组合的相关电路系统。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些情况下,存储器装置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中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。例如,同一页175中的存储器单元可共享公共字线(例如,与其耦合),并且同一串中的存储器单元可共享公共数字线(其可被替代地称作位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级(例如,在页粒度级)读取和编程(例如,写入),但是可在第二粒度级(例如,在块粒度级)擦除。也就是说,页175可以是可独立编程或读取(例如,作为单个编程或读取操作的部分并行编程或读取)的最小存储器(例如,存储器单元集)单位,并且块170可以是可独立擦除(例如,作为单个擦除操作的部分并行擦除)的最小存储器(例如,存储器单元集)单位。此外,在一些情况下,NAND存储器单元可在它们可以用新数据重写之前擦除。因此,例如,在一些情况下,已用页175可直到包含页175的整个块170被擦除才更新。
在一些情况下,要更新块170内的一些数据同时在块170内保持其它数据,存储器装置130可将要保持的数据复制到新块170,并将更新后的数据写入到新块170的其余一或多个页。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将留在旧块170中的数据标记或以其它方式表示为无效或作废,并更新L2P映射表以使数据的逻辑地址(例如,LBA)与新的有效块170而不是旧的无效块170相关联。在一些情况下,例如,出于时延或磨损考虑因素,此类复制和重新映射可以是优选的,以擦除和重写整个旧块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,在一或多个块170或平面165内)以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
L2P映射表以及其它信息可受FTL 180管理或包含在FTL 180中,其中FTL 180例如可执行L2P地址映射、垃圾收集、耗损均衡、ECC程序和/或不良块管理,以及其它实例。FTL180可包含在例如存储器系统控制器115或本地控制器135的控制器的部分中,或者可另外或替代地作为单独逻辑或固件而包含在存储器装置130中。
两个或更多个FTL 180可被包含为存储器装置130或存储器系统110的部分,其中第一FTL 180(例如,使用较大粒度的主FTL 180)可配置成支持使用经定义粒度的数据映射,且第二FTL 180(例如,次FTL或更小FTL 180)可配置成支持使用小于经定义粒度的粒度的数据映射。例如,如果数据的大小小于经定义粒度,或如果一或多个数据子集的对准未能匹配第一FTL 180的数据对准,或如果数据的大小或对准未能匹配空闲物理位置(例如,与第一FTL 180相关联)的大小或对准,那么存储器装置可选择第二FTL 180来管理数据映射。在FTL 180之间选择可支持更高的L2P效率、更高的高速缓存命中率以及减小的用于匹配经定义粒度的数据的存储器块预算,同时减小与写入未能匹配经定义粒度的数据相关联的时延和耗损(例如,通过去除或减少与使用一个FTL 180相关联的读取、修改和写入操作)。
在一些情况下,L2P表可被维持,且数据可在页粒度级别标记为有效或无效,并且页175可含有有效数据、无效数据或不含数据。无效数据可以是由于更为新近或更新后的数据版本存储在存储器装置130的不同页175中而过时的数据。无效数据先前已编程到无效页175,但是可能不再与有效逻辑地址相关联,例如主机系统105所引用的逻辑地址。有效数据可以是此类存储在存储器装置130上的最新版本的数据。不包含数据的页175可以是从未被写入或已经被擦除的页175。
在一些情况下,存储器系统控制器115、本地控制器135或本地控制器145可执行存储器装置130或存储器装置140的操作(例如,作为一或多个媒体管理算法的部分),例如耗损均衡、背景刷新、垃圾收集、清理、块扫描、健康监测或其它操作,或其任何组合。例如,在存储器装置130内,块170可具有一些含有有效数据的页175和一些含有无效数据的页175。为了避免等待块170中的全部页175具有无效数据以便擦除和重复使用块170,可以调用称为“垃圾收集”的算法,使得块170被擦除和释放为空闲块以用于后续写入操作。垃圾收集可以指一组媒体管理操作,包含例如选择含有有效和无效数据的块170,选择块中含有有效数据的页175,将有效数据从选定页175复制到新位置(例如,另一块170中的空闲页175),将先前选定页175中的数据标记为无效,以及擦除选定块170。因此,已经擦除的块170的数量可以增加,使得更多块170可用于存储后续数据(例如,后续从主机系统105接收的数据)。
系统100可包含任何数量的支持存储器装置处的多个FTL的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115、存储器装置130或者存储器装置140可包含或者可以其它方式存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储用于执行本文中属于主机系统105、存储器系统控制器115、存储器装置130或存储器装置140的功能的指令(例如,固件)。例如,此类指令在由主机系统105(例如,主机系统控制器106)、存储器系统控制器115、存储器装置130(例如,本地控制器135)或存储器装置140(例如,本地控制器145)执行时可使主机系统105、存储器系统控制器115、存储器装置130或存储器装置140执行本文中所描述的一或多个相关联功能。
图2示出根据本文所公开的实例的支持存储器装置处的多个FTL的架构200的实例。例如,参考如参考图1所描述的相应存储器装置或存储器系统,架构200可表示装置架构200或系统架构200。例如,架构200可在存储器装置205处实施,存储器装置205可表示参考图1所描述的存储器装置130的实例。尽管本文中所描述的实例参考的是存储器装置205,但是应理解,在不脱离本公开的范围的情况下,相同实例可适用于存储器系统。
存储器装置205可包含接口210(例如,一或多个引脚、球或衬垫),其可以或能够与主机系统、主机装置或在存储器装置205外部的另一源耦合。存储器装置205可经由接口210与主机系统或主机装置(例如,或其它外部源)通信,例如通过经由接口210从主机系统或主机装置接收数据和一或多个命令以及向主机系统或主机装置传输数据(例如,响应于读取命令)。在一个实例中,存储器装置205可从主机系统或主机装置接收写入命令以及要写入到存储器装置205的数据。存储器装置205可采用本文中所描述的一或多种技术来支持将接收到的数据写入到存储器装置205(例如,写入到存储器装置205的存储器阵列225)。
如参考图1所描述,存储器装置205可包含FTL 220,其可支持数据存储和管理。FTL220可与接口耦合,并且另外可与装置控制器215耦合或包含在装置控制器215中。例如,FTL220可表示控制器逻辑或软件或与装置控制器215分开的逻辑或软件的任何组合。
当存储器装置205接收数据和写入数据的命令(例如,其可包含数据的逻辑地址)时,FTL 220可确定存储数据(例如,在存储器阵列225内)的物理地址(例如,空闲物理地址),并且可存储或更新使数据的逻辑地址和物理地址相关的L2P映射。数据的大小可以称为块写入或块写入大小,并且可表示要写入到存储器装置205(例如,写入到存储器阵列225)的数据位的量。如本文中所描述的物理地址和逻辑地址还可分别表示物理块地址(PBA)和逻辑块地址(LBA)。
在一些情况下,FTL 220(例如,FTL 220-a)可使用经定义粒度(例如,数据页或32千字节(kB)的数据的粒度)支持数据映射(例如,L2P映射),其可以称为FTL转换单元。经定义粒度可支持管理L2P映射(例如,L2P表)时增加的空间和时间效率,例如,通过使用数据物理页的大小(例如,16kB的数据或四个LBA)或数据物理页的倍数(例如,64kB或更大)(例如,多平面物理页分块)的大小映射物理地址。映射信息可存储在逻辑地址和相关联的物理地址的列表中,所述列表可配置成用于更大且更快的数据存储。例如,一个物理地址可与四个逻辑地址(例如,FTL转换单元)相关联,使得匹配经定义粒度的数据可以增加的速度和准确性进行写入和读取。在一些情况下,主机系统或主机装置可向存储器装置205指示与小于经定义粒度的粒度相关联的用于写入的数据。例如,数据可小于经定义粒度,可以对准使得数据的一部分小于经定义粒度,或者可能未能匹配一或多个空闲物理地址的物理粒度,即使大小或另一特性会经FTL 220适当处理也如此。
在这些和其它情况中,存储器装置205(例如,存储器装置205的FTL 220-a)可执行读取、修改和写入操作以写入数据(例如,以在写入操作中包含其它先前写入的数据),因为与数据相关联的粒度可能未能匹配经定义粒度。但是,使用这些其它不同技术的读取、修改和写入操作可为写入数据引入额外时延,并且还可能会增加写入放大和耗损,这可能会缩减装置寿命和装置性能。
本公开提供用于在存储器装置内包含两个或更多个FTL 220的技术,其中第一FTL220-a(例如,使用较大粒度的主FTL 220)可配置成支持使用经定义粒度的数据映射,且第二FTL 220-b(例如,次FTL或更小FTL 220)可配置成支持使用小于经定义粒度的粒度(例如,4kB或更小)的数据映射。例如,FTL 220-a可用于映射匹配经定义粒度的数据,其可表示存储在存储器装置205处的大部分数据。例如,数据可表示相对较高的顺序数据或工作负载,其可表示相对较高数量的较大数据块和相对较低数量的较小数据块。FTL220-b可用于映射不匹配经定义粒度(例如,与较小粒度相关联)的数据。
使用FTL 220-b映射不匹配经定义粒度的数据可支持在不执行与FTL 220-a相关联的读取、修改和写入操作的情况下映射此类数据。例如,FTL 220-b可配置成在不执行读取、修改和写入操作的情况下映射可小于经定义粒度的数据、可以对准使得数据的一部分小于经定义粒度的数据,或可能未能匹配一或多个空闲物理地址的物理粒度的数据。这样做可例如通过减少与使用FTL 220-a映射数据相关联的读取、修改和写入操作而减小时延,减小写入放大和耗损,并增加装置寿命和性能。
因此,存储器装置205可例如基于数据的一或多个特性在FTL 220-a和220-b之间进行选择以映射数据(单独地或以某一组合的方式)。在FTL 220-a和220-b之间选择以管理数据可支持更高的L2P效率、更高的高速缓存命中率以及减小的用于匹配经定义粒度的数据的存储器块预算,同时减小与写入未能匹配经定义粒度的数据相关联的时延和耗损(例如,通过去除或减少与使用FTL 220-a相关联的读取、修改和写入操作)。在一些情况下,存储器装置205可例如基于匹配FTL 220-a或220-b的数据的一或多个特性而选择FTL 220-a或220-b中的一个来映射数据。在一些情况下,存储器装置205可选择FTL 220-a和FTL 220-b两者来映射数据。例如,数据的第一部分或子集可能不匹配经定义粒度(例如,基于数据的第一部分的所述一或多个特性),并且可以使用FTL 220-b映射,而数据的第二部分或子集匹配经定义粒度(例如,基于数据的第二部分的所述一或多个特性),并且可以使用FTL220-a映射。
FTL 220-b可配置成管理在小于FTL 220-a的粒度下的数据映射(例如,L2P映射)。例如,如果数据大小小于经定义粒度,如果一或多个数据子集的对准未能匹配FTL 220-a的数据对准,或如果数据的大小或对准未能匹配空闲物理位置(例如,与FTL 220-a相关联)的大小或对准,那么存储器装置205可选择FTL 220-b来管理数据映射。有关在FTL 220-a和FTL 220-b之间选择的细节参考图3进一步描述。FTL 220-b可具有用于存储通过FTL 220-b映射的数据的物理位置,其中物理位置可表示数据的临时存储位置。物理位置可表示配置成用于通过FTL 220-b映射的数据的一或多个存储器单元块(例如,跨所有平面或裸片的SLC块或虚拟块)。写入到物理位置的数据可以随后组合成可例如经由读取、修改和写入程序、经由顺序垃圾收集受FTL 220-a管理的更大数据,或数据聚合。将数据组合成更大的数据可通过使用FTL 220-a管理数据增加数据效率和FTL效率。
FTL 220-b可配置成使用可配置有对应于FTL 220-b的格式的一或多个映射方案管理数据映射(例如,L2P映射)。例如,FTL 220-b可使用任何数据结构管理数据映射(例如,可存储L2P信息),例如二叉树或其它树、物理和逻辑地址的散列表、逻辑和物理地址对的平坦列表,或其任何组合。与二叉树映射方案有关的实例在本文中参考图4进一步描述。例如,FTL 220-b可在存储器装置205的一部分中使用包含在存储器装置中或与存储器阵列225相关联的SRAM(例如,高达256kB的SRAM)存储数据映射。
如果FTL 220-b用于配置要写入到存储器装置205的数据,那么FTL 220-b可识别主机系统或主机装置(例如,经由写入命令)为数据提供的一或多个逻辑地址。FTL 220-b可识别用于存储数据的对应于所述一或多个逻辑地址的一或多个物理地址,并且可更新数据映射方案,使得所述一或多个逻辑地址与所述一或多个相应物理地址相关联。存储器装置205(例如,使用装置控制器215)可将数据写入到所述一或多个物理地址。
如果存储器装置205接收例如读取数据的读取命令,那么FTL 220-b可识别(例如,从读取命令)与数据相关联的一或多个逻辑地址。FTL 220-b可使用数据映射(例如,L2P表)查找所述一或多个逻辑地址,并且如果数据与FTL 220-b相关联,那么FTL 220-b可返回对应于所述一或多个逻辑地址的一或多个物理地址(例如,返回到装置控制器215)。如果数据不与FTL 220-b相关联,那么FTL 220-b可返回数据不与FTL 220-b的数据映射相关联的指示(例如,返回到装置控制器215),并且存储器装置205(例如,装置控制器215)可使用FTL220-a查找和读取数据(例如,使用与主L2P表相关联的查找机制)。
如本文所描述,使用与FTL 220-b相关联的信息存储的一些或全部数据可以重写为与FTL 220-a相关联。例如,刷新可表示期间与FTL 220-b相关联的所有数据可重写为与FTL 220-a相关联的垃圾收集操作(例如,与FTL 220-a相关联)的部分。刷新可在存储器装置205断电时、在FTL 220-b达到条目的阈值量时、在定时器到期时或在出现其任何组合时进行。与FTL 220-b相关联的数据的其它重写技术可包含重写与FTL 220-b相关联的部分(例如,但非全部)数据。例如,与一或多个逻辑或物理地址相关联的数据可由存储器装置205(例如,装置控制器215)识别以用于重写过程,并且可以从与FTL 220-b相关联重写为与FTL 220-a相关联。
图3示出根据本文所公开的实例的支持使用存储器装置处的多个FTL的流程图300的实例。流程图300可示出存储器装置在第一FTL和第二FTL之间进行选择以映射数据的技术,例如,如本文中关于图2所描述。存储器装置可表示参考图1和2描述的存储器装置的实例。第一FTL可表示配置成映射与经定义粒度相关联或具有经定义粒度的数据的FTL的实例,第二FTL可表示配置成映射与小于经定义粒度的粒度相关联或具有小于经定义粒度的粒度的数据的FTL的实例。流程图300可示出在存储器装置的控制器或其它组件(或其某一组合)处进行的技术,这可例如响应于从主机系统或主机装置(例如,或在存储器装置外部的其它源)接收到例如写入命令的命令和相关联数据而进行。
在305处,数据可被接收(例如,在控制器或接口处)以写入到存储器装置。数据可从存储器装置外部的源(例如,主机系统或主机装置)在写入命令内或相对于写入命令接收。存储器装置可识别数据的一或多个逻辑地址,其中数据的大小可基于数据的逻辑地址的量,并且其中逻辑地址可配置有数据对准或配置。存储器装置可评估数据以确定数据的一或多个特性并确定数据的所述一或多个特性是匹配第一FTL还是匹配第二FTL。
在310处,可以确定(例如,通过存储器装置的控制器)数据大小是否匹配第一FTL的阈值数据大小。例如,阈值可表示第一FTL的FTL转换单元的大小,或者可表示第一FTL的经定义粒度。如果数据大小大于或等于阈值,那么存储器装置可进行到315,例如,因为数据可基于数据大小而匹配第一FTL的数据映射技术。如果数据大小小于阈值,那么存储器装置可进行到330,并且可使用第二FTL处理和存储数据,例如,因为数据可基于数据大小而匹配第二FTL的数据映射技术(例如,因为第二FTL可配置成用于较小大小的数据)。
在315处,可以确定(例如,通过存储器装置的控制器)数据的对准是否匹配第一FTL的数据对准。数据可例如包含一定量的逻辑地址(例如,LBA),其中逻辑地址的对准可能匹配也可能不匹配第一FTL的数据对准(例如,包含经定义粒度)。例如,第一FTL可配置成使用经定义粒度或经定义粒度的倍数处理数据。因此,如果数据包含大于经定义粒度但是不为经定义粒度的倍数的逻辑地址,那么数据对准(例如,至少对于数据的一部分)可以不匹配第一FTL的对准。例如,经定义粒度可表示四个逻辑地址(例如,四个LBA),且数据可包含六个逻辑地址(例如,六个LBA),使得数据逻辑地址中的四个可匹配第一FTL的数据对准,而数据的其余两个逻辑地址可以不匹配。
另外或替代地,数据可配置成数据群组(例如,分块)以在FTL处处理,并且数据分块中的一个的大小可以不匹配经定义粒度。例如,经定义粒度可表示四个逻辑地址(例如,四个LBA),且数据可配置为包含两个逻辑地址(例如,两个LBA)的第一分块、包含四个逻辑地址(例如,四个LBA)的第二分块和包含两个逻辑地址(例如,两个LBA)的第三分块。数据可以是经定义粒度的倍数(例如,八个逻辑地址可以是四个逻辑地址的倍数),但是其中两个数据分块可小于经定义粒度(例如,第一和第三分块)且可能不匹配第一FTL的数据对准。
在这些和其它实例中,如果数据的对准匹配第一FTL的数据对准,那么存储器装置可进行到320,例如,因为数据可基于数据的对准而匹配第一FTL的数据映射技术。类似地,如果数据的对准不匹配第一FTL的数据对准,那么存储器装置可进行到330,并且可使用第二FTL来存储数据(例如,或数据的非对准子集),例如,因为数据(例如,或其非对准部分)可基于数据的对准而匹配第二FTL的数据映射技术(例如,因为第二FTL可配置成用于与较小粒度对准的数据)。
在320处,可以确定(例如,通过存储器装置的控制器)数据的可用存储(例如,空闲物理地址或PBA)是否匹配第一FTL的数据对准或大小。如本文所描述,数据可包含一定量的逻辑地址(例如,LBA),其中逻辑地址中的一或多个的对准或大小可能匹配也可能不匹配与第一FTL相关联的数据的可用存储。
例如,第一FTL可与存储器装置阵列的经定义物理地址处的数据存储相关联。物理地址可包含数据平面内的数据页,其中多个(例如,两个)数据平面可包含在存储器裸片中,并且其中多个存储器裸片可包含在存储器装置中。存储器装置可配置成使用将数据写入到平面内的一或多个页的写入程序存储数据。
当数据使用第一FTL存储在阵列处时可以使用一些物理地址,并且当接收要写入到存储器装置的新数据时可以评估第一FTL的其余物理地址用于存储。在一些情况下,接收到的数据可包含大于存储器装置平面内的可用页数量的数据量,并且因此数据可能不匹配与第一FTL相关联的可用存储,并且可分成较小分块以写入到可用页和平面。因此,较小数据可匹配第二FTL的数据大小或对准,并且可以使用第二FTL而不是第一FTL来处理。在一些情况下,较小数据分块中的一或多个可匹配第一FTL的可用存储的大小或对准,并且可相应地进行处理,使得数据的第一部分可以使用第一FTL处理,数据的第二部分可以使用第二FTL处理。
在这些和其它实例中,如果数据的对准或大小匹配与第一FTL相关联的可用存储,那么存储器装置可进行到325,例如,因为数据可基于相对于可用存储的数据的大小或对准而匹配第一FTL的数据映射技术。类似地,如果数据的对准或大小不匹配与第一FTL相关联的可用存储,那么存储器装置可进行到330,并且可使用第二FTL来存储数据(例如,数据的一部分),例如,因为数据(例如,或其部分)可基于数据的大小或对准而匹配第二FTL的数据映射技术(例如,因为第二FTL可配置成用于与较小粒度相关联的数据)。
在325处,如果例如基于310、315和320处的确定,数据(例如,或其部分)在大小、对准方面或针对可用存储匹配第一FTL(例如,存储器装置可基于310、315和320处的确定而确定数据匹配第一FTL),那么可以处理或存储数据(例如,或其部分)。应理解,310、315和320处的确定的次序不受本文中所描述的实例限制,且关于310、315和320描述的技术可以不同次序或在不同时间执行,而不脱离本公开的范围。
在330处,如果例如基于310、315或320中的一个处的确定,数据(例如,或其部分)在大小、对准方面或针对可用存储匹配第二FTL,那么可以处理或存储数据(例如,或其部分)。例如,存储器装置可基于在310、315或320中的任一个处确定数据的特性不匹配第一FTL而确定数据匹配第二FTL。
流程图300的方面可由控制器以及其它组件实施。另外或替代地,流程图300的各方面可以实施为存储在存储器中的指令(例如,存储在与存储器装置或其控制器耦合的存储器中的固件)。例如,所述指令在由控制器(例如,存储器装置控制器)执行时可使控制器执行流程图300的操作。
图4示出根据本文所公开的实例的支持存储器装置处的多个FTL的映射方案400的实例。映射方案400可示出存储器装置存储和存取FTL的映射数据的技术,例如,如本文中关于图2所描述。存储器装置可表示参考图1-3描述的存储器装置的实例,并且FTL可表示配置成针对存储器装置的另一FTL映射与小于经定义粒度的粒度相关联或具有小于经定义粒度的粒度的数据的FTL的实例。
映射方案400可表示用于使数据的逻辑和物理地址相关的二叉树映射方案的实例(例如,用于存储L2P信息)。存储器装置可使用二叉树,例如,因为相比于其它映射方案,二叉树可具有更高的灵活性和用于较小FTL的较小地址空间。在本文中所描述的实例中,映射方案400可用于映射与具有特定大小(例如,一个千兆字节(GB))的存储器阵列相关联的数据,但是还可用于映射与任何大小的存储器阵列相关联的数据。
在本文中所描述的实例中,映射方案400可用于将数据的逻辑地址映射到具有一个GB的大小的存储器阵列内的数据的物理地址。在初始化FTL后(例如,当初始化存储器装置时,例如在功率循环之后),存储器阵列可将主机系统或主机装置(例如,或在存储器装置外部的其它源)的地址空间(例如,逻辑地址空间)分割成四个256兆字节(MB)的范围405,其中每个范围可以是顺序的,并且可包含不同逻辑地址。例如,范围405-a可包含对应于从0编号到255的兆字节的逻辑地址,范围405-b可包含对应于从256编号到511的兆字节的逻辑地址,范围405-c可包含对应于从512编号到767的兆字节的逻辑地址,且范围405-d可包含对应于从768编号到1023的兆字节的逻辑地址。每个范围405可与二叉树中其自身的对应于相应范围405内的逻辑地址的一组节点相关联,并且范围405内的任何地址(例如,物理地址)可以使用两个字节或16个信息位寻址。
存储器装置可定义二叉树内的节点415,并且可向节点415分配信息结构。信息结构可包含用于二叉树内的每个节点415的逻辑地址字段、物理地址字段、左指针字段和右指针字段。每个字段可包含两个字节或16个信息位,使得二叉树内的节点415可包含八个字节或64个信息位。如果使用64kB进行L2P映射(例如,64kB的SRAM),那么FTL可以此方式存储二叉树的8,192个节点415的信息。在不脱离本公开的范围的情况下,还可实施具有不同节点大小、节点结构的类似结构、或存储器结构或使用不同数量的存储器存储的结构。
如果存储器装置从主机系统或主机装置(例如,或在存储器装置外部的其它源)接收写入数据的写入命令,那么存储器装置(例如,存储器装置的控制器)可在使用FTL和其它FTL之间进行选择以存储和映射数据(例如,如参考图2和3所描述)。如果选择FTL,那么存储器装置可识别与数据相关联的逻辑地址(例如,如写入命令中所指定),并且可识别与逻辑地址相关联的范围405以及是否已经为范围405定义任何节点415。例如,如果根指针410指向范围405的第一或初始节点(例如,根指针410-a、410-b和410-c分别指向节点415-a、415-b和415-c),那么可以定义节点。如果节点415已经定义,那么存储器装置可确定逻辑地址是否包含在经定义节点415中。如果逻辑地址包含在经定义节点415中,那么存储器装置可以用与写入数据相关联的新物理地址更新相关联的物理地址。如果逻辑地址不包含在经定义节点415中,那么存储器装置可以为逻辑地址构建或创建新节点415。类似地,如果范围405不包含任何节点415(例如,范围405-b),那么存储器装置可以为逻辑地址构建或创建新节点415(例如,范围405内的第一节点)。
在为节点415构建或创建信息时,存储器装置可包含相关联节点的逻辑地址、物理地址、左指针420和右指针420的指示。逻辑和物理地址可分别表示与节点415相关联的数据的逻辑和物理地址(例如,用于L2P映射)。左、右指针420可各自指向节点415的相应子节点415。例如,左指针420可指向在节点415之后添加到二叉树中且具有在节点415的逻辑地址之前的逻辑地址的子节点415,并且右指针420可指向在节点415之后添加到二叉树中且具有在节点415的逻辑地址之后的逻辑地址的子节点415。在一个实例中,节点415-b可包含指示左指针420-b指向子节点415-e和右指针420-c指向子节点415-f的信息。因此,节点415-b(例如,范围405-c内的第五LBA)的逻辑地址可在节点415-e(例如,范围405-c内的第一LBA)的逻辑地址之后但在节点415-f(例如,范围405-c内的第十LBA)的逻辑地址之前。
当节点415创建或初始化时,节点415可不存在子节点415,且左、右指针420可为空白或空,直到相应子节点415添加到二叉树中为止。例如,节点415-a的右指针420可为空白或空,节点415-c的左、右指针420也如此。类似地,范围405的根指针410可为空白或空,直到第一或初始节点添加到范围405中为止。例如,范围405-b的根指针410可为空白或空。
如本文中所描述的二叉树结构可用于查找或读取写入到存储器装置的数据(例如,使用FTL写入的数据)。例如,如参考图2所描述,存储器装置可针对读取命令确定读取命令的数据是与FTL相关联还是与其它FTL相关联还是与这两者相关联。此过程可例如通过针对由读取命令指示的每个逻辑地址识别与逻辑地址相关联的范围405而执行。存储器装置可对相关联节点415执行二叉搜索以确定逻辑地址是否与FTL相关联(例如,逻辑地址是否包含在二叉树中)。如果逻辑地址在二叉树的节点415中发现,那么存储器装置可从与节点415相关联的信息存取相关联的物理地址,并且可存取物理地址以执行读取命令。如果逻辑地址未在二叉树的节点415中发现,那么存储器装置可使用与所述其它FTL相关联的查找机制(例如,以搜索主L2P表)。
二叉树结构还可刷新或者可使相关联数据重写到与所述其它FTL相关联的数据位置(例如,作为垃圾收集的一部分)。当执行刷新时,存储器装置(例如,存储器装置的控制器)可执行每一组节点415(例如,针对每个范围405)的有序遍历,并且可使用在其中存取的映射信息填写所述其它FTL(例如,更大粒度的FTL)的映射信息,例如用于使用所述其它FTL的读取和重写操作。相关联数据重写到与所述其它FTL相关联的存储位置的任何节点415(例如,所有节点415)可以解构(例如,擦除),使得相关联存储器(例如,SRAM存储器)可被释放。在一些情况下,存储器装置(例如,存储器装置的控制器)可使用指示空闲或已分配节点415的位图(例如,受硬件或固件管理的位图),其可用于识别空闲或空的节点415。在一些情况下,在刷新(例如,垃圾收集)之前每个节点415可以使用一次,这可通过去除搜索空闲或空的节点415的分配或解除分配功能而简化与二叉树相关联的操作。
在一些情况下,二叉树可以存储在控制器存储器(例如,SRAM)中,并且可使用256kB或更小的控制器存储器(例如,具有与八个字节的存储器相关联的节点415且具有512MB的物理空间可用于数据存储)来操作。例如,当与FTL相关联的存储区处于或几乎处于满负荷时,如果与FTL相关联的存储区减小且使用前台垃圾收集从与FTL相关联的存储区清除数据,那么二叉树可以使用较小数量的控制器存储器。
如果二叉树在存储器装置断电或执行功率循环之前不刷新,那么二叉树信息可以存储在存储器装置的非易失性存储器中(例如,作为断电程序的一部分)。可以在存储器装置通电时扫描或读取信息(例如,作为断电后通电恢复的部分),并且二叉树可以重建(例如,针对每个范围405)。例如,二叉树信息可以重新存储在SRAM的对应位置中,如在断电之前。在一些情况下,当二叉树经刷新以指示二叉树中的信息和存储在存储器装置处的相关联数据无效时,可以使用数据块。
图5示出根据本文所公开的实例的支持存储器装置处的多个FTL的存储器装置505的框图500。存储器装置505可以是参考图1-4所描述的存储器装置的各方面的实例。存储器装置505可包含数据接收组件510、FTL选择组件515、映射信息组件520、数据读取组件525和数据重写组件530。这些模块中的每一个可直接或间接地彼此通信(例如,经由一或多个总线)。
数据接收组件510可在存储器装置处接收数据和在存储器装置处存储数据的命令。在一些情况下,命令包含数据的逻辑地址的指示。
FTL选择组件515可基于数据的结构而选择用于存储数据的FTL,所述FTL在第一FTL和与小于第一FTL的数据存储大小相关联的第二FTL之间选择。在一些实例中,FTL选择组件515可确定数据的大小小于与第一FTL相关联的数据存储的阈值大小,其中数据的结构包含数据的大小。
在一些实例中,FTL选择组件515可确定数据的一或多个子集的对准未能匹配与第一FTL相关联的数据对准,其中数据的结构包含所述一或多个子集的对准。在一些实例中,FTL选择组件515可确定数据的大小或对准未能匹配与第一FTL相关联的一或多个存储位置的大小或对准,其中数据的结构包含数据的大小或对准。
映射信息组件520可基于选择第二FTL而在第二FTL的存储位置子集处存储与数据相关联的映射信息,所述映射信息具有对应于第二FTL的格式。在一些情况下,映射信息包含L2P地址映射,所述L2P地址映射包含平坦列表、散列表、二叉树或其任何组合。在一些情况下,二叉树包含用于每个L2P地址映射的一或多个子节点的指示。
数据读取组件525可接收读取存储在存储器装置处的第二数据的第二命令。在一些实例中,数据读取组件525可基于接收到第二命令而确定第二数据是否使用来自第二FTL的映射信息存储。在一些实例中,数据读取组件525可基于确定第二数据是否使用来自第二FTL的映射信息存储而读取第二数据。在一些实例中,数据读取组件525可确定第二数据使用来自第二FTL的第二映射信息存储。
在一些实例中,数据读取组件525可基于确定第二数据使用来自第二FTL的第二映射信息存储而使用来自第二FTL的第二映射信息读取第二数据。在一些实例中,数据读取组件525可确定第二数据不与来自第二FTL的映射信息相关联。在一些实例中,数据读取组件525可基于确定第二数据不与来自第二FTL的映射信息相关联而使用来自第一FTL的第二映射信息读取第二数据。
数据重写组件530可确定满足在存储器装置处重写数据的条件。在一些实例中,数据重写组件530可基于确定满足条件而选择第一FTL来重写数据。在一些实例中,数据重写组件530可基于选择第一FTL而在第一FTL的存储位置子集处存储与数据相关联的第二映射信息,所述映射信息具有对应于第一FTL的格式。在一些情况下,条件包含存储器装置的功率循环变化、第二FTL的映射信息的条目量、定时器的到期或其任何组合。
图6示出根据本文所公开的实例的示出支持存储器装置处的多个FTL的一或多种方法600的流程图。方法600的操作可由如本文中所描述的存储器装置或其组件实施。例如,方法600的操作可由参考图5所描述的存储器装置执行。在一些实例中,存储器装置可执行一组指令以控制存储器装置的功能元件执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的各方面。
一或多种方法600的各方面可由控制器以及其它组件实施。另外或替代地,一或多种方法600的各方面可以实施为存储在存储器中的指令(例如,存储在与存储器装置耦合的存储器中的固件)。例如,所述指令在由控制器(例如,存储器控制器)执行时可使控制器执行一或多种方法600的操作。
在605处,存储器装置可在存储器装置处接收数据和在存储器装置处存储数据的命令。操作605可根据本文描述的方法执行。在一些实例中,操作605的各方面可由参考图5所描述的数据接收组件执行。
在610处,存储器装置可基于数据的结构选择用于存储数据的FTL,所述FTL在第一FTL和与小于第一FTL的数据存储大小相关联的第二FTL之间选择。操作610可根据本文描述的方法执行。在一些实例中,操作610的各方面可由参考图5所描述的FTL选择组件执行。
在615处,存储器装置可基于选择第二FTL而在第二FTL的存储位置子集处存储与数据相关联的映射信息,所述映射信息具有对应于第二FTL的格式。操作615可根据本文描述的方法执行。在一些实例中,操作615的各方面可由参考图5所描述的映射信息组件执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在存储器装置处接收数据和在存储器装置处存储数据的命令;基于数据的结构,选择用于存储数据的FTL,所述FTL在第一FTL和与小于第一FTL的数据存储大小相关联的第二FTL之间选择;以及基于选择第二FTL,在第二FTL的存储位置子集处存储与数据相关联的映射信息,所述映射信息具有对应于第二FTL的格式。
在本文中所描述的方法600和设备的一些实例中,选择FTL可包含用于以下的操作、特征、构件或指令:确定数据的大小可小于与第一FTL相关联的数据存储的阈值大小,其中数据的结构包含数据的大小。在本文中所描述的方法600和设备的一些实例中,选择FTL可包含用于以下的操作、特征、构件或指令:确定数据的一或多个子集的对准未能匹配与第一FTL相关联的数据对准,其中数据的结构包含所述一或多个子集的对准。在本文中所描述的方法600和设备的一些实例中,选择FTL可包含用于以下的操作、特征、构件或指令:确定数据的大小或对准未能匹配与第一FTL相关联的一或多个存储位置的大小或对准,其中数据的结构包含数据的大小或对准。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:接收读取存储在存储器装置处的第二数据的第二命令;基于接收到第二命令,确定第二数据是否可以使用来自第二FTL的映射信息存储;以及基于确定第二数据是否可以使用来自第二FTL的映射信息存储,读取第二数据。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定第二数据可以使用来自第二FTL的第二映射信息存储,并基于确定第二数据可以使用来自第二FTL的第二映射信息存储而使用来自第二FTL的第二映射信息读取第二数据。本文中所描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定第二数据可能不与来自第二FTL的映射信息相关联,并基于确定第二数据可能不与来自第二FTL的映射信息相关联而使用来自第一FTL的第二映射信息读取第二数据。
本文中所描述的方法600和设备的一些实例可进一步包含用于以下的操作、特征、构件或指令:确定在存储器装置处重写数据的条件可被满足;基于确定条件可被满足,选择第一FTL来重写数据;以及基于选择第一FTL,在第一FTL的存储位置子集处存储与数据相关联的第二映射信息,所述映射信息具有对应于第一FTL的格式。在本文中所描述的方法600和设备的一些实例中,条件包含存储器装置的功率循环变化、第二FTL的映射信息的条目量、定时器的到期或其任何组合。
在本文中所描述的方法600和设备的一些实例中,映射信息包含L2P地址映射,所述L2P地址映射包含平坦列表、散列表、二叉树或其任何组合。在本文中所描述的方法600和设备的一些实例中,二叉树包含用于每个L2P地址映射的一或多个子节点的指示。在本文中所描述的方法600和设备的一些实例中,命令包含数据的逻辑地址的指示。
应注意,上文所描述的方法描述可能实施方案,并且操作和步骤可以重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个的部分。
描述一种设备。所述设备可包含存储器阵列和控制器,所述控制器与所述存储器阵列耦合且配置成:使所述设备接收数据和在所述设备处存储所述数据的命令;基于所述数据的结构,选择用于存储所述数据的FTL,所述FTL在第一FTL和与小于所述第一FTL的数据存储大小相关联的第二FTL之间选择;以及基于选择所述第二FTL,在所述第二FTL的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二FTL的格式。
在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定所述数据的大小可小于与所述第一FTL相关联的数据存储的阈值大小,其中所述数据的所述结构包含所述数据的所述大小。在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定所述数据的一或多个子集的对准未能匹配与所述第一FTL相关联的数据对准,其中所述数据的所述结构包含所述一或多个子集的所述对准。在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定所述数据的大小或对准未能匹配与所述第一FTL相关联的一或多个存储位置的大小或对准,其中所述数据的所述结构包含所述数据的所述大小或所述对准。
在所述设备的一些实例中,所述控制器可进一步配置成使所述设备接收读取存储在所述设备处的第二数据的第二命令,基于接收到所述第二命令而确定所述第二数据是否可以使用来自所述第二FTL的映射信息存储,并基于确定所述第二数据是否可以使用来自所述第二FTL的映射信息存储而读取所述第二数据。在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定所述第二数据可以使用来自所述第二FTL的第二映射信息存储,并基于确定所述第二数据可以使用来自所述第二FTL的第二映射信息存储而使用来自所述第二FTL的所述第二映射信息读取所述第二数据。在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定所述第二数据可能不与来自所述第二FTL的映射信息相关联,并基于确定所述第二数据可能不与来自所述第二FTL的映射信息相关联而使用来自所述第一FTL的第二映射信息读取所述第二数据。
在所述设备的一些实例中,所述控制器可进一步配置成使所述设备确定在所述设备处重写所述数据的条件可被满足,基于确定所述条件可被满足而选择所述第一FTL来重写所述数据,并基于选择所述第一FTL而在所述第一FTL的存储位置子集处存储与所述数据相关联的第二映射信息,所述映射信息具有对应于所述第一FTL的格式。在一些实例中,所述条件包含所述设备的功率循环变化、所述第二FTL的映射信息的条目量、定时器的到期或其任何组合。
在一些实例中,所述映射信息包含L2P地址映射,所述L2P地址映射包含平坦列表、散列表、二叉树或其任何组合。在一些实例中,所述二叉树包含用于每个L2P地址映射的一或多个子节点的指示。在一些实例中,所述命令包含所述数据的逻辑地址的指示。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示出为单个信号;然而,所属领域的普通技术人员应理解,所述信号可表示信号总线,其中总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件中断所连接组件之间的信号流动一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传送,在闭路关系中,信号能够通过导电路径在组件之间传送。当例如控制器的一组件将其它组件耦合在一起时,那么所述组件引发允许信号通过导电路径在所述其它组件之间流动的改变,所述导电路径先前不允许信号流动。
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在断路,那么它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器将两个组件隔离时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中所论述的包含存储器阵列的装置可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在其它情况下,衬底可为绝缘体上硅(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 (20)

1.一种设备,其包括:
存储器阵列;以及
控制器,其与所述存储器阵列耦合且配置成使所述设备:
接收数据和在所述设备处存储所述数据的命令;
至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及
至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
2.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
确定所述数据的大小小于与所述第一快闪转换层相关联的数据存储的阈值大小,其中所述数据的所述结构包括所述数据的所述大小。
3.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
确定所述数据的一或多个子集的对准未能匹配与所述第一快闪转换层相关联的数据对准,其中所述数据的所述结构包括所述一或多个子集的所述对准。
4.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
确定所述数据的大小或对准未能匹配与所述第一快闪转换层相关联的一或多个存储位置的大小或对准,其中所述数据的所述结构包括所述数据的所述大小或所述对准。
5.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
接收读取存储在所述设备处的第二数据的第二命令;
至少部分地基于接收到所述第二命令,确定所述第二数据是否使用来自所述第二快闪转换层的所述映射信息存储;以及
至少部分地基于确定所述第二数据是否使用来自所述第二快闪转换层的所述映射信息存储,读取所述第二数据。
6.根据权利要求5所述的设备,其中所述控制器进一步配置成使所述设备:
确定所述第二数据使用来自所述第二快闪转换层的第二映射信息存储;以及
至少部分地基于确定所述第二数据使用来自所述第二快闪转换层的所述第二映射信息存储,使用来自所述第二快闪转换层的所述第二映射信息读取所述第二数据。
7.根据权利要求5所述的设备,其中所述控制器进一步配置成使所述设备:
确定所述第二数据不与来自所述第二快闪转换层的所述映射信息相关联;以及
至少部分地基于确定所述第二数据不与来自所述第二快闪转换层的所述映射信息相关联,使用来自所述第一快闪转换层的第二映射信息读取所述第二数据。
8.根据权利要求1所述的设备,其中所述控制器进一步配置成使所述设备:
确定满足在所述设备处重写所述数据的条件;
至少部分地基于确定满足所述条件,选择所述第一快闪转换层来重写所述数据;以及
至少部分地基于选择所述第一快闪转换层,在所述第一快闪转换层的存储位置子集处存储与所述数据相关联的第二映射信息,所述映射信息具有对应于所述第一快闪转换层的格式。
9.根据权利要求8所述的设备,其中所述条件包括所述设备的功率循环变化、所述第二快闪转换层的映射信息的条目量、定时器的到期或其任何组合。
10.根据权利要求1所述的设备,其中所述映射信息包括逻辑到物理地址映射,所述逻辑到物理地址映射包括平坦列表、散列表、二叉树或其任何组合。
11.根据权利要求10所述的设备,其中所述二叉树包括用于所述逻辑到物理地址映射中的每一个的一或多个子节点的指示。
12.根据权利要求1所述的设备,其中所述命令包括所述数据的逻辑地址的指示。
13.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时使所述电子装置:
接收数据和在所述电子装置处存储所述数据的命令;
至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及
至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
14.根据权利要求13所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
确定所述数据的大小小于与所述第一快闪转换层相关联的数据存储的阈值大小,其中所述数据的所述结构包括所述数据的所述大小。
15.根据权利要求13所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
确定所述数据的一或多个子集的对准未能匹配与所述第一快闪转换层相关联的数据对准,其中所述数据的所述结构包括所述一或多个子集的所述对准。
16.根据权利要求13所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
确定所述数据的大小或对准未能匹配与所述第一快闪转换层相关联的一或多个存储位置的大小或对准,其中所述数据的所述结构包括所述数据的所述大小或所述对准。
17.根据权利要求13所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
接收读取存储在所述电子装置处的第二数据的第二命令;
至少部分地基于接收到所述第二命令,确定所述第二数据是否使用来自所述第二快闪转换层的所述映射信息存储;以及
至少部分地基于确定所述第二数据是否使用来自所述第二快闪转换层的所述映射信息存储,读取所述第二数据。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
确定所述第二数据使用来自所述第二快闪转换层的第二映射信息存储;以及
至少部分地基于确定所述第二数据使用来自所述第二快闪转换层的所述第二映射信息存储,使用来自所述第二快闪转换层的所述第二映射信息读取所述第二数据。
19.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
确定所述第二数据不与来自所述第二快闪转换层的所述映射信息相关联;以及
至少部分地基于确定所述第二数据不与来自所述第二快闪转换层的所述映射信息相关联,使用来自所述第一快闪转换层的第二映射信息读取所述第二数据。
20.一种由存储器装置执行的方法,所述方法包括:
在所述存储器装置处接收数据和在所述存储器装置处存储所述数据的命令;
至少部分地基于所述数据的结构,选择用于存储所述数据的快闪转换层,所述快闪转换层在第一快闪转换层和与小于所述第一快闪转换层的数据存储大小相关联的第二快闪转换层之间选择;以及
至少部分地基于选择所述第二快闪转换层,在所述第二快闪转换层的存储位置子集处存储与所述数据相关联的映射信息,所述映射信息具有对应于所述第二快闪转换层的格式。
CN202111152599.7A 2020-10-07 2021-09-29 存储器装置处的多个快闪转换层 Pending CN114297091A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/065,455 US11836074B2 (en) 2020-10-07 2020-10-07 Multiple flash translation layers at a memory device
US17/065,455 2020-10-07

Publications (1)

Publication Number Publication Date
CN114297091A true CN114297091A (zh) 2022-04-08

Family

ID=80932301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111152599.7A Pending CN114297091A (zh) 2020-10-07 2021-09-29 存储器装置处的多个快闪转换层

Country Status (2)

Country Link
US (1) US11836074B2 (zh)
CN (1) CN114297091A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573208A (zh) * 2024-01-12 2024-02-20 深圳宏芯宇电子股份有限公司 指令信息分配方法及存储器存储装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101739556B1 (ko) * 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
US10222984B1 (en) * 2015-12-31 2019-03-05 EMC IP Holding Company LLC Managing multi-granularity flash translation layers in solid state drives
US9946469B2 (en) * 2016-03-21 2018-04-17 Smart Modular Technologies, Inc. Solid state storage system with latency management mechanism and method of operation thereof
US10877900B1 (en) * 2019-06-26 2020-12-29 Western Digital Technologies, Inc. Enabling faster and regulated device initialization times
CN110471861B (zh) * 2019-07-10 2022-02-11 华为技术有限公司 一种闪存设备中的数据存储方法及闪存设备
KR20210070054A (ko) * 2019-12-04 2021-06-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11818406B2 (en) * 2020-07-23 2023-11-14 Western Digital Technologies, Inc. Data storage server with on-demand media subtitles

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573208A (zh) * 2024-01-12 2024-02-20 深圳宏芯宇电子股份有限公司 指令信息分配方法及存储器存储装置
CN117573208B (zh) * 2024-01-12 2024-05-28 深圳宏芯宇电子股份有限公司 指令信息分配方法及存储器存储装置

Also Published As

Publication number Publication date
US11836074B2 (en) 2023-12-05
US20220107886A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
US20230185728A1 (en) Data alignment for logical to physical table compression
CN114625671A (zh) 存储器装置的动态逻辑页大小
US11907556B2 (en) Data relocation operation techniques
US11755490B2 (en) Unmap operation techniques
US11836074B2 (en) Multiple flash translation layers at a memory device
CN115729848A (zh) 直接逻辑到物理地址映射
WO2022120527A1 (en) Techniques for accessing managed nand
US20220197790A1 (en) Valid data identification for garbage collection
WO2022040914A1 (en) Unmap backlog in a memory system
US11520525B2 (en) Integrated pivot table in a logical-to-physical mapping having entries and subsets associated via a flag
US11797380B2 (en) Host-configurable error protection
US20240078031A1 (en) Dividing blocks for special functions
US12007889B2 (en) Valid data identification for garbage collection
US11775422B2 (en) Logic remapping techniques for memory devices
US20230367495A1 (en) Host-enabled block swap techniques
US11921627B2 (en) Usage level identification for memory device addresses
US11989133B2 (en) Logical-to-physical mapping compression techniques
WO2024020707A1 (en) Memory performance evaluation using address mapping information
US11977758B2 (en) Assigning blocks of memory systems
US20240020016A1 (en) Metadata allocation in memory systems
US20230195646A1 (en) Flexible information compression at a memory system
US20230359563A1 (en) Validity mapping techniques
US20230236762A1 (en) Data relocation scheme selection for a memory system
US20210373908A1 (en) Data techniques for system boot procedures
CN114546893A (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