CN115605850A - 用于逻辑到物理表压缩的数据组织 - Google Patents

用于逻辑到物理表压缩的数据组织 Download PDF

Info

Publication number
CN115605850A
CN115605850A CN202180006261.2A CN202180006261A CN115605850A CN 115605850 A CN115605850 A CN 115605850A CN 202180006261 A CN202180006261 A CN 202180006261A CN 115605850 A CN115605850 A CN 115605850A
Authority
CN
China
Prior art keywords
physical addresses
region
memory
logical
physical
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
CN202180006261.2A
Other languages
English (en)
Inventor
毕焱华
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 CN115605850A publication Critical patent/CN115605850A/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • 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

Landscapes

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

Abstract

描述了用于逻辑到物理表压缩的数据组织的方法、系统和装置。存储器系统可以识别包括与不连续的对应物理地址相关联的一或多个逻辑地址的区域。所述存储器系统可以包括多个逻辑地址区域和根据多个物理地址排列的多个存储器单元。所述存储器系统可以确定对所述多个存储器单元的访问操作的不活动的时间段,并且在所述不活动的时间段期间,将存储在所述不连续的对应物理地址内的信息重新排列在所述多个物理地址的连续物理地址内。

Description

用于逻辑到物理表压缩的数据组织
技术领域
以下总体上涉及一或多个用于存储器的系统,并且更具体地,涉及用于逻辑到物理表压缩的数据组织。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可被编程为两个支持的状态之一,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两种可能的状态,其中任何一种状态都可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
存在各种类型的存储器装置,包括磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、闪速存储器、相变存储器(PCM)、三维交叉点存储器(3D交叉点)、非或(NOR)和非与(NAND)存储器装置,以及其他。存储器装置可以是易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
附图说明
图1示出了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的系统的实例。
图2图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的系统的实例。
图3图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的框图的实例。
图4图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的流程图的实例。
图5示出了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的受管理存储器系统控制器的框图。
图6示出了流程图,所述流程图图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的一或多种方法。
具体实施方式
一些存储器系统使用逻辑到物理(L2P)表来将逻辑块地址(LBA)与物理地址进行映射。可由主机系统使用LBA来对在存储器系统处的存储的数据进行寻址,并且可由存储器系统使用物理地址来识别存储的数据的相应物理位置。在一些情况下,存储器系统可具有高速缓冲存储器以存储L2P表正在使用的部分,并且可在执行从主机系统接收的命令时使用高速缓冲存储器中的L2P表的部分。然而,高速缓冲存储器可能具有有限的大小。在一些情况下,高速缓冲存储器的大小限制可能导致增加的开销,因为L2P表的区域可能频繁地从存储器系统的存储器媒体(例如,非易失性存储器)传送到高速缓冲存储器。频繁地将L2P表的部分加载到高速缓冲存储器可能降低存储器系统的整体性能,从而增加与主机系统相关的其他操作的等待时间(例如,降低有效读取、写入和擦除速度和效率)。此外,随着L2P表的大小增加,用于用户数据的存储器的大小可能减小。在这类情况下,可能需要减小L2P表的大小或存储在高速缓冲存储器中的L2P表的部分的大小的技术。
描述了用于压缩由存储器系统的L2P表存储的数据的系统、装置和技术。可通过组织与L2P表的一部分相关联的数据来压缩由L2P表存储的数据。例如,存储器系统可重新排列逻辑地址区域,以对应于物理存储器空间的连续地址。如果逻辑地址的区域已满(例如,区域的每个逻辑地址对应于物理地址)并且具有高计数的不连续(例如,非连续)物理地址,则区域可以是用于重新排列的候选区域。在重新排列区域(例如,数据被写入物理地址的连续区域)之后,可更新L2P表以存储区域的第一地址和区域对应于物理地址的连续范围的指示符。在这类情况下,高速缓冲存储器可存储第一地址和指示符来代替区域的每个逻辑地址的物理地址,从而消耗区域的高速缓冲存储器中更少的空间,并增加存储在有限的高速缓冲存储器空间中的区域的数量。增加高速缓冲存储器中存储的区域数量反过来可减少从L2P表到高速缓冲存储器的区域加载量。
这类技术(例如,经由数据组织压缩由L2P表存储的数据)可提高存储器系统的整体性能,从而降低与主机系统相关的其他操作的等待时间。例如,将不连续物理地址重新排列在物理存储器空间的连续地址内可减小(例如,压缩)L2P表的大小并改善存储器系统的整体效率,这可导致存储器系统经历改善的读取、写入和擦除速度、降低的功耗、改善的处理时间等。
参考图1至2,在系统、装置和电路的上下文中最初描述了本公开的特征。参考图3至4,在框图和工艺流程的上下文中描述了本公开的特征。参考图5至6,本公开的这些和其他特征在涉及用于逻辑到物理表压缩的数据组织的设备图和流程图的上下文中被进一步图示和描述。
图1图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的系统100的实例。系统100包括与存储器系统110耦合的主机系统105。
存储器系统110可以是或包括任何装置或装置的集合,其中装置或装置的集合包括至少一个存储器阵列。例如,存储器系统110可为或包括通用闪速存储器(UFS)装置、嵌入式多媒体控制器(eMMC)装置、闪速装置、通用串行总线(USB)闪速装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其他可能性。
系统100可包括在计算装置中,所述计算装置如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其他运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包括在交通工具、工业装备或联网商业装置中的嵌入式计算机),或包括存储器和处理装置的任何其他计算装置。
系统100可包括主机系统105,其可与存储器系统110耦合。在一些实例中,这种耦合可包括与主机系统控制器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)或可被存储器系统控制器115用于内部存储或计算的其他存储器,例如,与本文归于存储器系统控制器115的功能相关。另外地或替代地,本地存储器120可用作存储器系统控制器115的高速缓冲存储器。例如,如果从存储器装置130读取数据或向所述存储器装置写入数据,则数据可被存储在本地存储器120中,并且数据可在本地存储器120中能够使用,以供主机系统105根据高速缓冲存储器策略进行后续检索或操纵(例如,更新)(例如,相对于存储器装置130具有减少的等待时间)。
尽管图1中的存储器系统110的实例已被图示为包括存储器系统控制器115,但在一些情况下,存储器系统110可不包括存储器系统控制器115。例如,存储器系统110可另外地或替代地依赖于外部控制器(例如,由主机系统105实施)或一或多个本地控制器135,其可分别在存储器装置130的内部,以执行本文归于存储器系统控制器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中执行并行操作可具有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其他电路系统)。
在一些情况下,块170可包括组织成行(页175)和列(例如,串,未展示)的存储器单元。例如,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,并且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,例如,在一些情况下,可直到包括页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,为了更新块170中的一些数据,同时保留块170中的其他数据,存储器装置130可将待保留的数据复制到新的块170,并将更新的数据写入新的块170的一或多个剩余页。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保留在旧的块170中的数据标记或以其他方式指定为无效或过时,并且可更新逻辑到物理(L2P)映射表,以将数据的逻辑地址(例如,LBA)与新的有效块170而不是旧的无效块170相关联。在一些情况下,例如,由于等待时间或损耗的考虑,可执行这类复制和重新映射,而不是擦除和重写整个旧的块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,一或多个块170或平面165内),以供本地控制器135或存储器系统控制器115使用(例如,参考和更新)。
在一些情况下,可维护L2P映射表且可在页粒度级别上将数据标记为有效或无效,并且页175可含有效数据、无效数据或不含数据。无效数据可以是由于存储在存储器装置130的不同页175中的数据的更新的或更新的版本而过时的数据。无效数据可能先前已经被编程到无效页175,但可能不再与有效逻辑地址(例如由主机系统105所引用的逻辑地址)相关联。有效数据可以是被存储在存储器装置130上的这类数据的最新版本。不包括数据的页175可以是从未被写入或已被擦除的页175。
系统100可包括支持用于逻辑到物理表压缩的数据组织的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包括或以其他方式可访问存储指令(例如,固件)的一或多个非暂时性计算机可读媒体,所述指令用于执行本文中归于主机系统105、存储器系统控制器115或存储器装置130的功能。例如,这类指令如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130(例如,由本地控制器135)执行,则可使主机系统105、存储器系统控制器115或存储器装置130执行如本文所述的一或多个相关联的功能。
在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包括例如一或多个存储器阵列和与本地(例如,管芯上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为受管理NAND(MNAND)系统。
存储器系统110可包括用于由主机系统105寻址的逻辑地址的区域和根据物理地址排列的存储器单元。在这种情况下,存储器系统110可识别具有与不连续的对应物理地址相关联的一或多个逻辑地址的逻辑地址的区域。存储器系统110可在空闲时间期间将区域的数据重新排列在物理地址的连续块内。例如,存储器系统可确定对存储器单元的访问操作的不活动的时间段,并且在不活动的时段期间,将存储在不连续的对应物理地址内的信息重新排列在连续物理地址内。
图2图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的系统200的实例。系统200可以是参考图1或其方面所描述的系统100的实例。系统200可包括存储器系统210,其被配置为存储从主机系统205接收到的数据,并且如果由主机系统205使用存取命令(例如,读取命令或写入命令)来请求,则将数据发送到主机系统205。系统200可实施参考图1描述的系统100的方面。例如,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
存储器系统210可包括存储器装置240,以例如响应于从主机系统205接收到存取命令来存储在存储器系统210和主机系统205之间传送的数据,如本文中所描述。存储器装置240可包括如参考图1描述的一或多个存储器装置。例如,存储器装置240可包括NAND存储器、PCM、自选择存储器、3D交叉点、其他基于硫族化物的存储器、FERAM、MRAM、NOR(例如NOR闪速)存储器、STT-MRAM、CBRAM、RRAM或OxRAM。
存储器系统210可包括存储控制器230以用于控制直接进出存储器装置240的数据的传递,例如用于存储数据、检索数据,和确定待将数据存储在其中和待从其检索数据的存储器位置。存储控制器230可使用特定于每种类型的存储器装置240的协议,直接或经由总线(未示出)与存储器装置240通信。在一些情况下,单个存储控制器230可用于控制相同或不同类型的多个存储器装置240。在一些情况下,存储器系统210可包括多个存储控制器230,例如,用于每种类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实现如参考图1描述的本地控制器135的方面。
存储器系统210可另外包括用于与主机系统205通信的接口220和用于临时存储在主机系统205和存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225和存储控制器230可用于在主机系统205和存储器装置240之间转换数据,例如,如由数据路径250所示,并且可被统称为数据路径组件。
在传送期间使用缓冲器225临时地存储数据可允许在处理命令时缓冲数据,从而减少命令之间的时延且允许与命令相关联的任意数据大小。这还可允许待处置命令的突发,并且一旦突发已停止,就可存储或传输(或两者)缓冲的数据。缓冲器225可包括相对快速的存储器(例如,一些类型的易失性存储器,例如SRAM或DRAM)或硬件加速器或两者,以允许快速向缓冲器225存储数据和从所述缓冲器检索数据。缓冲器225可包括用于缓冲器225和其他组件之间的双向数据传送的数据路径切换组件。
数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,在完成存取命令后,相关联数据可能不再维持在缓冲器225中(例如,可用额外存取命令的数据覆写)。此外,缓冲器225可以是非高速缓冲存储器缓冲器。也就是说,数据不能由主机系统205直接从缓冲器225中读取。例如,读取命令可被添加到队列中,而无需将地址与已经在缓冲器225中的地址相匹配的操作(例如,无需高速缓冲存储器地址匹配或查找操作)。
存储器系统210可另外包括用于执行从主机系统205接收到的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是如参考图1描述的存储器系统控制器115的实例。总线235可用于在系统组件之间通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。例如,如果来自主机系统205的多于一个的访问命令由存储器系统210同时处理,则这可能是有益的。命令队列260、缓冲器队列265和存储队列270分别在接口220、存储器系统控制器215和存储控制器230处被描绘作为可能实现的实例。然而,队列(如果使用)可位于存储器系统210内的任何位置。
在主机系统205和存储器装置240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。例如,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件而不是总线235使用数据路径250。存储器系统控制器215可通过在总线235上与数据路径组件通信(例如,使用特定于存储器系统210的协议)来控制数据如何以及是否在主机系统205和存储器装置240之间传送。
如果主机系统205将存取命令传输到存储器系统210,则命令可由接口220例如根据协议(例如,UFS协议或eMMC协议)接收。因此,接口220可被认为是存储器系统210的前端。在接收到每个访问命令时,接口220可例如经由总线235将命令传送到存储器系统控制器215。在一些情况下,每个命令可由接口220添加到命令队列260,以将命令传送到存储器系统控制器215。
存储器系统控制器215可基于来自接口220的通信来确定已经接收到访问命令。在一些情况下,存储器系统控制器215可通过从命令队列260检索命令来确定已经接收到访问命令。该命令可在例如由存储器系统控制器215从命令队列260中检索到之后从所述命令队列中移除。在一些情况下,存储器系统控制器215可例如经由总线235使接口220从命令队列260移除命令。
在确定已接收到存取命令后,存储器系统控制器215可执行存取命令。对于读取命令,这可能意味着从存储器装置240获得数据并将数据传输到主机系统205。对于写入命令,这可能意味着从主机系统205接收数据并将数据移动到存储器装置240。
在任一种情况下,存储器系统控制器215可使用缓冲器225来临时存储从主机系统205接收或发送至所述主机系统的数据以及其他。缓冲器225可被认为是存储器系统210的中间端。在一些情况下,缓冲器地址管理(例如,指向缓冲器225中的地址位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)来执行。
为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,所述命令流包括写入命令。缓冲器队列265可包括与当前存储在缓冲器225中的数据相关联的访问命令。在一些情况下,命令队列260中的命令可由存储器系统控制器215移动到缓冲器队列265,并且可保留在缓冲器队列265中,同时相关联的数据被存储在缓冲器225中。在一些情况下,缓冲器队列265中的每个命令可与缓冲器225中的地址相关联。也就是说,可维护指示与每个命令相关联的数据存储在缓冲器225中何处的指针。使用缓冲器队列265,可从主机系统205循序接收多个存取命令且可并行处理存取命令的至少部分。
如果缓冲器225具有足够的空间来存储写入数据,则存储器系统控制器215可使接口220例如根据协议(例如,UFS协议或eMMC协议)向主机系统205传输可用性的指示(例如,“准备好传送”指示)。当接口220随后从主机系统205接收与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225用于临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内存储数据的位置。接口220可例如经由总线235向存储器系统控制器215指示是否已完成到缓冲器225的数据传送。
一旦写入数据已经通过接口220被存储在缓冲器225中,所述数据就可被传送出缓冲器225并被存储在存储器装置240中。这可使用存储控制器230来完成。例如,存储器系统控制器215可使存储控制器230使用数据路径250从缓冲器225中检索数据,并将数据传送到存储器装置240。存储控制器230可被认为是存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示向存储器装置240的存储器装置的数据传送已经完成。
在一些情况下,存储队列270可用于辅助写入数据的传送。例如,存储器系统控制器215可将写入命令从缓冲器队列265推送(例如,经由总线235)到存储队列270以供处理。存储队列270可包括用于每一存取命令的条目。在一些实例中,存储队列270可另外包括:缓冲器指针(例如,地址),其可指示在缓冲器225中何处存储与命令相关联的数据;及存储指针(例如,地址),其可指示存储器装置240中与数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得缓冲器225内的从其获得数据的位置。存储控制器230可管理存储器装置240内的存储数据(例如,进行耗损均衡、垃圾收集等)的位置。条目可例如由存储器系统控制器215添加到存储队列270中。在完成数据的传送时,例如通过存储控制器230或存储器系统控制器215从存储队列270中移除条目。
为了处理从主机系统205接收到的读取命令,存储器系统控制器215可再次首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与读取命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于以与上文关于写入命令所论述的类似方式来辅助与读取命令相关联的数据的缓冲器存储。例如,如果缓冲器225具有足够的空间来存储读取数据,则存储器系统控制器215可使存储控制器230从存储器装置240检索与读取命令相关联的数据,并且使用数据路径250将数据存储在缓冲器225中用于临时存储。存储控制器230可例如经由总线235向存储器系统控制器215指示何时向缓冲器225的数据传送已经完成。
在一些情况下,存储队列270可用于辅助读取数据的传送。例如,存储器系统控制器215可将读取命令推送到存储队列270以供处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得存储器装置240内的从其检索数据的位置。在一些情况下,存储控制器230可从缓冲器队列265获得缓冲器225内用以存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内的存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回到命令队列260。
一旦数据已经通过存储控制器230被存储在缓冲器225中,所述数据就可被传送出缓冲器225并被发送到主机系统205。例如,存储器系统控制器215可使接口220使用数据路径250从缓冲器225检索数据,并且例如根据协议(例如,UFS协议或eMMC协议)将数据传输到主机系统205。例如,接口220可处理来自命令队列260的命令,并且可例如经由总线235向存储器系统控制器215指示已完成到主机系统205的数据传输。
存储器系统控制器215可根据次序(例如,根据命令队列260的次序的先入先出次序)执行接收到的命令。对于每一命令,存储器系统控制器215可使得对应于命令的数据移动进出缓冲器225,如上文所论述。随着数据被移入并存储在缓冲器225中,命令可保留在缓冲器队列265中。如果命令的处理已经完成(例如,如果对应于访问命令的数据已经被传送出缓冲器225),则可例如通过存储器系统控制器215从缓冲器队列265中移除该命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外被配置成用于与存储器装置240相关联的操作。例如,存储器系统控制器215可执行或管理例如损耗均衡操作、垃圾收集操作、例如错误检测操作或错误纠正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监视以及与来自主机系统205的命令相关联的逻辑地址(例如,LBA)和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换的操作。也就是说,主机系统205可发出指示一或多个LBA的命令,并且存储器系统控制器215可识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个邻接LBA可对应于非邻接的物理块地址。在一些情况下,存储控制器230可被配置为结合或代替存储器系统控制器215来执行上述操作中的一或多个。在一些情况下,存储器系统控制器215可执行存储控制器230的功能,并且可省略存储控制器230。
在一些情况下,新兴存储器可用来代替其他存储器类型,例如NAND(例如闪存)。存储器系统210可接收访问存储器装置240的逻辑块地址的命令。存储器系统210可识别存储器系统210的包括与不连续物理地址相关联的一或多个逻辑块地址的区域。例如,存储器系统210可确定物理地址可以是不连续的(例如,非连续的)。存储器系统210可将包括在所述区域中的数据闪存到开源块。在这种情况下,存储器系统210可将数据从一个物理块写入到不同的物理块,其中数据以连续的方式写入,从而将数据重新排列为连续的。存储器系统210可访问存储器装置240的物理地址。
图3图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的框图300的实例。框图300可包括主机系统305、存储器系统310、存储器系统控制器315、接口320和存储器装置340,它们可以是如参考图1至2描述的主机系统、存储器系统、存储器系统控制器、接口和存储器装置的相应的实例。存储器系统310还可包括L2P高速缓冲存储器330、存储器345和L2P表350。L2P表350可包括每个区域355的物理地址的映射。每个物理地址可被称为物理页地址(PPA)360。
L2P高速缓冲存储器330中可用的存储量可能是有限的。例如,L2P高速缓冲存储器330可能无法存储整个L2P表350。当从主机系统305接收到命令时,存储器系统310可加载对应于与来自存储器装置340的命令相关联的逻辑地址(或多个逻辑地址)的L2P表350的区域。因为L2P高速缓冲存储器330的容量有限,所以新区域可能会覆盖先前加载的区域。因此,当从主机系统305接收到访问命令时,区域可能频繁被加载以覆盖其他区域。频繁地将区域从L2P表350加载到L2P高速缓冲存储器330可增加存储器系统310中的开销,从而降低存储器系统310的操作速度和效率。
为了解决这些缺陷,存储器系统310可重新排列存储器345的一或多个区域,使得逻辑地址的区域对应于连续物理地址。重新排列区域也可被称为对所述区域执行闪存操作。当存储器系统310处于空闲模式(例如,不接收或执行访问命令)时,存储器系统310可将不连续物理地址360组织成连续的。例如,存储器345和L2P表350的数据组织可作为后台操作来执行(例如,当存储器系统310不活动时)。如果物理地址360在区域355中是不连续的,则存储器系统310可将对应于所述区域的数据闪存到物理地址360的不同(例如,当前未使用的)块。在将区域数据闪存到不同块之后,区域的物理地址360可以是连续的。
存储器系统310可经由接口320从主机系统305接收命令,并向存储器345写入数据。在一些情况下,存储器系统310可基于向存储器345写入数据来维护(例如,更新)L2P表350。响应于更新L2P表350,存储器系统110可检索L2P表350的部分以存储在L2P高速缓冲存储器330中以供使用。在一些实例中,存储器系统310在某些技术(例如,NAND)中可能无法重写入数据,并且因此可能在后续向同一逻辑地址的写入中将数据写入不同的物理地址。
逻辑地址的区域355可对应于不连续物理地址360。例如,区域355-a可对应于物理地址360-a和360-b,其中物理地址360-b可与物理地址360-a不连续。区域355-b可对应于物理地址360-c到物理地址360-m。不连续物理地址可以是非连续物理地址的实例。例如,不连续物理地址可对应于作为多个读取命令的一部分被访问的随机物理地址的模式。
在一些情况下,整个LBA地址空间可被分成由存储器系统310管理的较小区域355。例如,存储器系统310可将地址空间分成区域355-a和355-b(以及附加区域)。在一些实例中,存储器系统310可识别区域355-a具有与不连续物理地址360(例如,包括物理地址360-a和360-b)相关联的一或多个逻辑地址。
存储器系统310可基于识别出区域355包括不连续物理地址360,将存储在不连续物理地址360内的信息重新排列(例如,闪存)到连续物理地址360内。存储器系统310可基于读取计数、区域355有多满、不连续的程度、写入放大、其他因素或其组合来确定将重新布置哪些区域355。
在一些情况下,存储器系统310可基于读取计数来确定哪些区域355将被重新排列。例如,如果区域355具有满足(例如,大于、或等于或大于)阈值量的读取命中计数,则存储器系统310可重新排列区域355。如果区域355具有不满足阈值量的读取命中计数,则存储器系统310可避免重新布置区域355。读取计数可以是对存储器系统310的存储器单元执行的读取操作的数量的实例。
在一些实例中,存储器系统310可选择目标区域355(包括不连续物理地址360)。可基于区域355是满的并且包括不连续物理地址360来选择目标区域355。满的区域355可以是其中所有逻辑地址都在使用的区域355的实例。在一些情况下,存储器系统310还可重新排列具有超过阈值量的正在使用的逻辑地址的区域。
存储器系统310可基于不连续的程度来确定哪些区域355将被重新排列。例如,存储器系统310可确定不连续的区域的物理地址360的数量高于阈值,以确定物理地址360是不连续的。不连续物理地址可被称为随机的,并且随机值可根据随机地址的数量分配给区域。在这种情况下,区域的物理地址360可指示高随机值。高随机值可以是满足(例如,大于、大于或等于)阈值的随机地址的数量。存储器系统310可确定随机的物理地址360的数量不满足阈值。在这种情况下,物理地址360可不包括随机地址,或者不满足阈值的随机地址的数量。具有1,024PPA的区域的最大随机值可以是1,024。如果随机值是1,024,则区域355可以是满随机区域355的实例(例如,该每个物理地址360是不连续的)。如果随机值是0,则区域355可以是含连续物理地址360的区域355的实例。
存储器系统310可基于写入放大来确定哪些区域355将被重新排列。例如,存储器系统310可根据从主机系统305接收的访问命令的数量和已经执行的写入操作的数量来确定写入放大。例如,主机系统305可传输指示请求存储器写入1GB数据的命令(例如,随着时间的推移)。作为命令的结果,存储器345可写入2GB数据(例如,由于后台操作,例如垃圾收集或将来自单个位单元的数据折叠到存储多位数据的单元),从而导致2的写入放大。
在一些情况下,存储器系统310可确定写入放大不满足(例如,小于、小于或等于)写入放大的阈值,并且确定区域355包括不连续物理地址360。在其他实例中,存储器系统310可确定写入放大满足(例如,大于、大于或等于)写入放大的阈值。例如,如果写入放大是满足阈值的值(例如,2、3、6等),则区域355可能已经被擦除了大量的次数,因此,存储器系统310可避免重新排列数据,是这将进一步增加写入放大。
存储器系统310可基于数据的类型来确定哪些区域355将被重新排列。例如,存储器系统可确定数据是热的还是冷的。如果数据被确定为热的,则存储器系统310可确定区域355在给定的时间量内正经历大量的读取操作(例如,所述区域上的读取操作的数量满足阈值)。如果数据被确定为冷的,则存储器系统310可确定区域355在给定的时间量内没有经历大量的读取操作(例如,读取操作的数量不满足阈值)。
在一些情况下,存储器系统310可基于因素的组合来确定哪些区域355将被重新排列。例如,如果对于1,024的区域大小,物理地址的随机值是1,024(或接近1,024),则数据是热数据,并且写入放大不满足(例如,小于、或小于或等于)阈值,则存储器系统310可确定区域355将被重新排列。在某个情况下,存储器系统310可使用表格来确定哪些区域355将通过在表格中记录每个因素并确定是否满足(例如,超过)重新排列物理地址360的总阈值来重新排列。在一些情况下,决定因素可基于优先级。例如,如果具有高随机值但很冷,则存储器345可避免重新排列区域。在这种情况下,数据可包括较低的重新排列的优先级。在一些实例中,存储器系统310可基于写入放大的不同值对随机值和读取操作的数量中的一或两者应用不同的阈值。例如,如果写入放大低于第一阈值,则如果随机值和读取操作的数量中的一或两者满足相应的第一阈值,则存储器系统310可重新排列区域。如果写入放大高于第一阈值但低于第二阈值,则如果随机值和读取操作的数量中的一或两者满足相应的第二阈值,则存储器系统310可重新排列区域。如果写入放大高于第二阈值,则如果随机值和读取操作的数量中的一或两者满足相应的第三阈值,则存储器系统310可重新排列区域。虽然此实例描述了写入放大的两个阈值,但可使用其他阈值。附加地或替代地,可将因子应用于写入放大、随机值和/或读取操作的数量,使得在应用了相应因子的情况下,如果写入放大、随机值和/或读取操作的数量的函数满足阈值,则存储器系统310可重新排列区域。
基于如上所论述识别满足一或多个阈值的区域355,存储器系统310可闪存区域355。闪存操作可以是将存储在不连续的对应物理地址中的信息重新排列到连续物理地址中的实例。例如,存储器系统310可将目标(例如,识别的)区域355闪存到存储器系统310的开放块。直接响应于闪存区域355,区域355可将不连续物理地址360转换成连续物理地址360。也就是说,可以从L2P表350中指示的每个不连续物理地址中读取数据,并将其重写为连续物理地址的集合。存储器系统310可基于重新排列区域355来确定区域355包括连续物理地址360。
在一些情况下,重新排列区域355可包括执行重写入操作。重写入操作可以是将数据读取到存储器345中、擦除数据块并将读取数据写入同一块的实例。在一些实例中,执行闪存操作可以是将数据从一或多个物理块移动到不同物理块的实例。连续物理地址360可以是顺序物理地址360的实例。例如,物理地址可彼此相邻(例如,包括诸如邻近、直接或紧邻的位置的位置以及其他)。在一些实例中,连续物理地址360可对应于作为多个读取命令的一部分而顺序(例如,一个接一个)存取的物理地址的模式。
存储器系统310可在不活动的时间段期间重新排列存储在不连续的对应物理地址360中的信息。例如,存储器系统310可确定对存储器系统310的存储器单元的访问操作的不活动的时间段,并且在不活动的时间段期间闪存所识别的区域。不活动的时间段可以是睡眠模式、低功率模式或空闲模式的实例。在一些实例中,如果存储器系统310不活动,则存储器系统310可整夜重新排列信息。在这种情况下,存储器系统310可在不活动的时间段期间不从主机系统305接收命令,以最小化闪存操作对存储器系统310的整体性能影响。
在一些情况下,L2P表350和/或L2P高速缓冲存储器330可存储已经被重新排列的区域355的相关信息。例如,L2P表可存储第一物理地址(例如,物理地址360-a)和逻辑地址的区域355对应于连续物理地址360的某个指示符。响应于接收到访问区域355的逻辑块地址的命令,可将一部分L2P表350(例如,表示)上载到L2P高速缓冲存储器330。L2P表350的部分可包括第一物理地址,并排除对应于区域355的连续物理地址360的附加物理地址360。在这种情况下,L2P高速缓冲存储器330可在L2P表350的区域355中存储减少量的数据而不是全部数量的地址,从而提高存储器系统310的效率和操作。
存储器系统310可通过存储第一物理地址和指示符来压缩L2P表350(例如,减小所述L2P表的大小)。在可重新排列不连续物理地址360之后,由于物理地址360是连续的,所以L2P表350可只存储第一物理地址。该指示符可指示物理地址360-a可以是物理地址360的连续区域中的第一物理地址。该指示符还可向存储器系统310发送信号,以在L2P高速缓冲存储器330中仅存储L2P表350的一部分。L2P高速缓冲存储器330的大小可能有限,因此存储L2P表350的部分可能会增加可写入到L2P高速缓冲存储器330的可用部分中的额外数据的量。L2P高速缓冲存储器330可以是SRAM的实例。如果物理地址360是不连续的,则区域355的每个物理地址360可被存储在L2P表350中并被加载到L2P高速缓冲存储器330中,从而增加了开销并减少了L2P高速缓冲存储器330中的可用存储的量。
L2P表350可被存储在存储器装置340中。在一些实例中,L2P表350的部分(例如,区域355)可从存储器装置340读取并被存储在L2P高速缓冲存储器330中,以在接收到与区域355内的逻辑地址相关联的命令时由存储器系统控制器315使用。也就是说,如果接收到针对区域355内的逻辑地址的命令,则可将区域355加载到L2P高速缓冲存储器330中。存储器系统控制器315可将L2P表350的部分存储在存储器系统310中。在一些情况下,L2P表350可将逻辑块地址映射到物理地址360。L2P表可被映射到存储器装置340的连续块(例如,为区域存储每个PPA 360的位置可以是存储器装置340的物理地址的连续块。L2P表350可被分成一或多个区域355(例如,区域355-a和355-b),其中物理地址360可被区域355索引。L2P表350可存储对应于逻辑块地址的物理地址360。
将存储在不连续的对应物理地址内的信息重新排列在连续物理地址内,并将第一物理地址360-a存储在L2P表350中,可允许L2P表350存储增加的量的数据,从而存储相应的逻辑块地址的更大区域,并改善读取性能。通过存储第一物理地址和物理地址的区域是连续的指示来压缩L2P表350可减少操作等待时间并改善存储器系统的整体操作(例如,重写入操作、垃圾收集操作等),因为L2P表压缩350可使存储器系统310能够响应于存储器操作而较不频繁地更新数据。
图4图示了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的流程图400的实例。流程图400可包括主机系统405、存储器控制器410、高速缓冲存储器415、存储器420和L2P表425,它们可以是如参考图1至3描述的主机系统、存储器系统、L2P高速缓冲存储器、存储器和L2P表的相应实例。可实施以下内容的替代性实例,其中一些步骤以不同次序执行或根本不执行。一些步骤可另外包括下文中未提及的额外特征。流程图400图示了其中存储器控制器410可重新排列具有不连续物理地址的逻辑地址的区域的数据从而组织用于L2P表压缩的数据的技术。
流程图400的方面可由控制器以及其他组件实施。附加地或替代地,流程图400的方面可被实现为存储在存储器中的指令(例如,存储在与存储器系统210耦合的存储器中的固件)。例如,所述指令当由控制器(例如,存储器系统控制器115)执行时,可使控制器执行流程图400的操作。
在430处,可接收命令。例如,主机系统405可向存储器控制器410或包括存储器控制器410、高速缓冲存储器415、存储器420和L2P表425的存储器系统传输命令。存储器控制器410可从主机系统405接收命令,并将数据写入存储媒体(例如,存储器420)。在一些情况下,存储器控制器410可接收访问所述区域中的逻辑块地址的命令。在一些情况下,所述命令可以是写入命令的实例。在这种情况下,存储器系统可访问L2P表425(例如,将L2P表的区域加载到高速缓冲存储器415),确定物理地址(从高速缓冲存储器415),并将数据写入不同的物理地址。存储器系统可用新的物理地址更新L2P表425。
在440处,可识别区域。例如,存储器控制器410可识别具有与不连续的对应物理地址相关联的一或多个逻辑地址的区域。在这种情况下,存储器控制器410可识别与不连续(例如,非连续)的物理地址的一部分相关联的逻辑地址的区域。存储器系统可包括逻辑地址的区域和根据物理地址排列的存储器单元。
在一些情况下,存储器控制器410可确定与不连续的对应物理地址相关联的一或多个逻辑地址的数量是否满足阈值。例如,存储器控制器410可基于包括高随机值的对应物理地址来确定逻辑块地址与不连续的对应物理地址相关联。在这种情况下,随机值可能高于阈值随机值。高随机值可指示对应的物理地址可以是不连续的(例如,随机的、非连续的)。
在一些实例中,存储器控制器410可识别具有与不连续的对应物理地址相关联的一或多个逻辑地址的第二区域。例如,存储器控制器410可确定写入放大因子小于不连续的对应物理地址的阈值。在这种情况下,存储器控制器410可基于低写入放大因子来识别区域。
存储器控制器410可响应于识别区域来确定区域的读取计数是否满足阈值。例如,存储器控制器410可确定与区域相关联的数据是热的(例如,在给定的时间量内具有满足阈值的读取的数量)。在这种情况下,存储器控制器410可基于确定数据是热的来识别区域。
存储器控制器410可直接响应于识别区域来确定具有与不连续的对应物理地址相关联的一或多个逻辑地址的区域是否被占用。例如,存储器控制器410可基于确定区域是满的(例如,具有满足阈值的被占用的地址的数量)和不连续的来识别区域。
在445处,可识别空闲时间。例如,存储器控制器410可识别空闲时间。存储器控制器410可响应于识别区域并确定对应的物理地址是不连续的来确定对存储器单元的存取操作的不活动的时间段。
在450处,可重新排列区域。例如,存储器控制器410可在不活动的时间段期间将存储在不连续的对应物理地址内的信息重新排列在连续物理地址内。为了重新排列信息,存储器控制器可从存储器420的不连续的对应物理地址读取信息,并将其写回到存储器420的连续物理地址。在这种情况下,存储器控制器410可在空闲时间段期间将不连续物理地址重新排列为连续范围的物理地址。重新排列可基于确定读取计数满足阈值、确定写入放大因子不满足阈值、确定物理地址包括高随机值、选择区域或其组合。
在一些情况下,存储器控制器410可基于确定写入放大因子满足阈值来抑制重新排列存储在与第二区域相关联的不连续的对应物理地址内的信息。在这种情况下,写入放大因子可大于、或大于或等于阈值,并且存储器控制器410可避免重新布置区域。
在450处,存储器控制器410可执行操作446以将数据移动(例如,读取与不连续物理地址相关联的数据并将与区域的逻辑地址相关联的数据写入连续的对应物理地址。写入操作可响应于读取数据(例如,在读取数据之后)而发生。
存储器控制器410还可执行操作447以更新L2P表425。例如,存储器控制器410可将连续物理地址中的第一物理地址存储到区域的L2P表中的第一位置。使用操作447更新L2P表还可包括在L2P表425中存储区域对应于物理地址的连续区域的指示符。指示符可指示存储在不连续的对应物理地址内的信息基于重新排列信息而被重新排列到连续物理地址内。在这种情况下,存储的指示符可识别对应的物理地址是连续的(continuous)(例如,连续的(sequential))。在这种情况下,可通过存储第一物理地址和指示符来压缩L2P表425(例如,减小大小),以指示第一之后的后续物理地址是连续的(例如,连续的)。例如,对于1,024个物理地址的区域大小,L2P表425可能只需要存储一个地址和指示符,而不是1,024个单独的地址。替代地,L2P表425可存储区域的每个连续物理地址。当对区域内的逻辑地址执行写入操作时,这可允许更容易地更新L2P表425(例如,L2P表的区域的其余部分也可不需要更新)。
在0465处,可接收到访问命令。例如,主机系统405可向存储器控制器410或存储器420传输访问命令。存储器控制器410可从主机系统405接收访问命令。在一些情况下,存储器控制器410可接收访问命令以访问区域中的逻辑块地址。访问命令可以是与已经被重新排列以对应于连续物理地址的区域相关联的读取命令。
在465处,可执行命令。执行该命令可包括将区域的L2P表425的表示470从L2P表425传输到高速缓冲存储器415。表示470可以是L2P表425的一部分的实例,该部分包括第一物理地址和指示符,并且排除了对应于区域的连续物理地址的附加物理地址,从而减小了表示470的大小。由于指示符和第一物理地址的存在,存储器系统可避免传输L2P表425的整个区域。
响应于接收到访问命令和表示,高速缓冲存储器415可加载(例如,存储)区域的L2P表425的表示470。高速缓冲存储器415可与存储器系统的L2P表425相关联。高速缓冲存储器415可将L2P表425的一部分存储在共享或本地存储器(例如,SRAM)中,从而由于L2P表425的区域的大小减小而增加了高速缓冲存储器415中的可用空间的量。由于物理地址在重新排列之后是连续的,所以高速缓冲存储器415可仅加载第一物理地址。在这种情况下,在472处,存储器系统可识别第一物理地址和在第一物理地址之后的剩余附加物理地址,而无需在高速缓冲存储器415中包括附加物理地址。
在475处,命令的执行可包括从对应于与命令相关联的逻辑地址的一或多个连续物理地址中读取数据。存储器控制器410可将数据发送到主机405以完成命令的执行。
图5示出了根据如本文公开的实例的支持用于逻辑到物理表压缩的数据组织的受管理的存储器系统控制器520的框图500。受管理的存储器系统控制器520可以是如参考图1至4所述的受管理的存储器系统控制器的方面的实例。受管理的存储器系统控制器520或其各种组件可以是用于执行如本文所述的逻辑到物理表压缩的数据组织的各个方面的构件的实例。例如,受管理的存储器系统控制器520可包括区域标识符525、空闲组件530、重排组件535、访问组件540、存储组件545或其任何组合。这些组件中的每一者可直接或间接地(例如,经由一或多条总线)彼此通信。
区域标识符525可被配置为或者以其他方式支持用于为包括多个逻辑地址区域和根据多个物理地址排列的多个存储器单元的存储器系统识别多个区域中具有与多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的区域的构件。空闲组件530可被配置为或者以其他方式支持用于确定多个存储器单元上的存取操作的不活动的时间段的构件。重排组件535可被配置为或者以其他方式支持用于在不活动的时间段期间将存储在不连续的对应物理地址内的信息重新排列在多个物理地址的连续物理地址内的构件。
在一些实例中,为了支持识别区域,区域识别器525可被配置为或者以其他方式支持用于确定与不连续的对应物理地址相关联的一或多个逻辑地址的数量是否满足阈值的构件。
在一些实例中,区域识别器525可被配置为或以其他方式支持用于识别多个区域具有与多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的第二区域的构件。在一些实例中,重排组件535可被配置为或者以其他方式支持用于至少部分地基于确定写入放大因子满足阈值来抑制重新排列存储在与第二区域相关联的不连续的对应物理地址内的信息的构件。
在一些实例中,访问组件540可被配置为或者以其他方式支持用于至少部分基于识别区域来确定区域的读取计数是否满足阈值的构件,其中重新排列信息至少部分地基于确定读取计数满足阈值。
在一些实例中,为了支持重新排列信息,访问组件540可被配置为或者以其他方式支持用于读取与多个物理地址相关联的数据的构件。在一些实例中,为了支持重新排列信息,访问组件540可被配置为或者以其他方式支持用于至少部分地基于读取数据来将与多个物理地址相关联的数据写入到多个区域中具有与多个物理地址的连续的对应物理地址相关联的一或多个逻辑地址的第二区域的构件,其中重新排列信息至少部分地基于读取数据和写入数据。
在一些实例中,存储组件545可被配置为或者以其他方式支持至少部分地基于重新排列信息来将多个物理地址中的第一物理地址存储在存储器系统的逻辑到物理表中的构件。
在一些实例中,存储组件545可被配置为或者以其他方式支持用于在存储器系统的逻辑到物理表中存储指示符的构件,所述指示符指示至少部分地基于重新排列信息来将存储在不连续的对应物理地址内的信息重新排列在连续物理地址内。
在一些实例中,访问组件540可被配置为或者以其他方式支持用于接收访问区域中的逻辑块地址的命令的构件。在一些实例中,存储组件545可被配置为或者以其他方式支持用于至少部分地基于接收命令来在与逻辑到物理表相关联的高速缓冲存储器中加载区域的逻辑到物理表的表示的构件,其中表示包括第一物理地址并且排除对应于区域的连续物理地址的附加物理地址。
在一些实例中,区域标识符525可被配置为或者以其他方式支持用于至少部分地基于识别区域来确定具有与多个物理地址中的不连续的对应物理地址相关联的一或多个逻辑地址的区域是否被占用的构件。在一些实例中,区域标识符525可被配置为或者以其他方式支持用于至少部分地基于确定区域被占用来选择区域的构件,其中重新排列信息至少部分地基于选择区域。
图6示出了图示了根据如本文公开的实例的方法600的流程图,所述方法支持用于逻辑到物理表压缩的数据组织。方法600的操作可由如本文所述的受管理的存储器系统控制器或其部件来实施。例如,方法600的操作可由如参考图1至5所述的受管理的存储器系统控制器来执行。在一些实例中,受管理的存储器系统控制器可执行指令的集合,以控制装置的功能元件来执行所述的功能。附加地或替代地,受管理的存储器系统控制器可使用专用硬件来执行所述的功能的方面。
在605处,可识别区域。例如,方法可包括对于包括多个逻辑地址区域和根据多个物理地址排列的多个存储器单元的存储器系统,识别多个区域中具有与多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的区域。605的操作可根据如本文公开的实例来执行。在一些实例中,605的操作的方面可如由参考图5描述的区域标识符525来执行。
在610处,可确定不活动的时间段。例如,方法可包括确定对多个存储器单元的访问操作的不活动的时间段。610的操作可根据如本文公开的实例来执行。在一些实例中,610的操作的方面可如由参考图5描述的空闲组件530来执行。
在615处,信息可被重新排列。例如,方法可包括在不活动的时间段期间将存储在不连续的对应物理地址中的信息重新排列在多个物理地址的连续物理地址中。615的操作可根据如本文公开的实例来执行。在一些实例中,615的操作的方面可由如参考图5所述的重排组件535来执行。
在一些实例中,如本文所述的设备可执行一或多种方法,例如方法600。设备可包括特征、电路系统、逻辑、构件或指令(例如,存储能够由处理器执行的指令的非暂时性计算机可读媒体),用于对于包括逻辑地址的多个区域和根据多个物理地址排列的多个存储器单元的存储器系统,识别多个区域中具有与多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的区域,确定对多个存储器单元的访问操作的不活动的时间段,和在不活动的时间段期间,将存储在不连续的对应物理地址内的信息重新排列在多个物理地址的连续物理地址内。
在本文所述的方法600和设备的一些实例中,识别区域可包括用于确定与不连续的对应物理地址相关联的一或多个逻辑地址的数量是否满足阈值的操作、特征、电路系统、逻辑、构件或指令。
本文所述的方法600和设备的一些实例可进一步包括操作、特征、电路系统、逻辑、构件或指令,用于识别多个区域中具有与多个物理地址中的不连续的对应物理地址相关联的一或多个逻辑地址的第二区域,并且至少部分地基于确定写入放大因子满足阈值来抑制重新排列存储在与第二区域相关联的不连续的对应物理地址内的信息。
本文所述的方法600和设备的一些实例可进一步包括用于至少部分地基于识别区域来确定区域的读取计数是否满足阈值的操作、特征、电路系统、逻辑、构件或指令,其中重新排列信息可至少部分地基于确定读取计数满足阈值。
在本文所述的方法600和设备的一些实例中,重新排列信息可包括操作、特征、电路系统、逻辑、构件或指令,用于至少部分地基于读取数据来读取与多个物理地址相关联的数据并将与多个物理地址相关联的数据写入到多个区域中具有与多个物理地址的连续的对应物理地址相关联的一或多个逻辑地址的第二区域,其中重新排列信息可至少部分地基于读取数据和写入数据。
本文所述的方法600和设备的一些实例可进一步包括操作、特征、电路系统、逻辑、构件或指令,用于至少部分地基于重新排列信息将多个物理地址中的第一物理地址存储在存储器系统的逻辑到物理表中。
本文所述的方法600和设备的一些实例可进一步包括用于在存储器系统的逻辑到物理表中存储指示符的操作、特征、电路系统、逻辑、构件或指令,所述指示符指示可至少部分地基于重新排列信息来将存储在不连续的对应物理地址内的信息重新排列在连续物理地址内。
本文所述的方法600和设备的一些实例可进一步包括操作、特征、电路系统、逻辑、构件或指令,用于接收访问所述区域中的逻辑块地址的命令,并且至少部分地基于接收命令来在与逻辑到物理表相关联的高速缓冲存储器中加载区域的逻辑到物理表的表示,其中所述表示包括第一物理地址并且排除对应于区域的连续物理地址的附加物理地址。
本文所述的方法600和设备的一些实例可进一步包括操作、特征、电路系统、逻辑、构件或指令,用于至少部分地基于识别区域来确定具有与多个物理地址中的不连续的对应物理地址相关联的一或多个逻辑地址的区域是否可被占用,并且至少部分地基于确定区域可被占用来选择区域,其中重新排列信息可至少部分地基于选择区域。
应注意,上文所描述的方法描述了可能的实施方案,并且操作和步骤可被重新排列或以其他方式修改,并且其他实施方案是可能的。此外,可组合来自所述方法中的两或更多种的部分。
可使用多种不同技术和技艺中的任一个来表示本文所述的信息和信号。例如,在整个以上描述中可能提及的数据、指令、命令、信息、信号、位、符号和芯片可由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。一些图式可将信号图示为单个信号;然而,信号可表示信号的总线,其中总线可具有各种位宽。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包括所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包括如开关、晶体管或其他组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其他组件耦合在一起,则组件发起允许信号经由先前不准许信号流动的导电路径在其他组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当……时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。例如,可进行第一条件或动作,并且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其他中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。在一些实例中,可进行第一条件或动作,并且可作为与是否发生其他条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,并且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其他中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其他步骤、动作、事件或条件进行的任何条件或动作可另外地或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其他条件或动作而进行。
本文中论述的装置(包括存储器阵列)可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其他实例中,衬底可以是绝缘体上硅(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.根据权利要求1所述的设备,其中,为了重新排列所述信息,所述控制电路被配置为使所述设备:
读取与所述多个物理地址相关联的所述数据;和
至少部分地基于读取所述数据,将与所述多个物理地址相关联的所述数据写入所述多个区域中具有与所述多个物理地址的连续的对应物理地址相关联的所述一或多个逻辑地址的第二区域,其中重新排列所述信息至少部分地基于读取所述数据和写入所述数据。
6.根据权利要求1所述的设备,其中所述控制电路被进一步配置为使所述设备:
至少部分地基于重新排列所述信息,将所述多个物理地址中的第一物理地址存储在所述存储器系统的逻辑到物理表中。
7.根据权利要求1所述的设备,其中所述控制电路被进一步配置为使所述设备:
在所述存储器系统的逻辑到物理表中存储指示符,所述指示符指示至少部分地基于重新排列所述信息,将存储在所述不连续的对应物理地址内的所述信息重新排列到所述连续物理地址内。
8.根据权利要求1所述的设备,其中所述控制电路被进一步配置为使所述设备:
接收访问所述区域中的逻辑块地址的命令;和
至少部分地基于接收所述命令,在与逻辑到物理表相关联的高速缓冲存储器中加载所述区域的所述逻辑到物理表的表示,其中所述表示包括第一物理地址,并且不包括对应于所述区域的所述连续物理地址中的附加物理地址。
9.根据权利要求1所述的设备,其中所述控制电路被进一步配置为使所述设备:
至少部分地基于识别所述区域来确定具有与所述多个物理地址中的所述不连续的对应物理地址相关联的所述一或多个逻辑地址的所述区域是否被占用;和
至少部分地基于确定所述区域被占用来选择所述区域,其中重新排列所述信息至少部分地基于选择所述区域。
10.一种存储包含指令的代码的非暂时性计算机可读媒体,所述指令当由电子装置的处理器执行时使所述电子装置:
对于包含多个逻辑地址区域和根据多个物理地址排列的多个存储器单元的存储器系统,识别所述多个区域中具有与所述多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的区域;
确定对所述多个存储器单元的存取操作的不活动的时间段;和
在所述不活动的时间段期间,将存储在所述不连续的对应物理地址内的信息重新排列在所述多个物理地址的连续物理地址内。
11.根据权利要求10所述的非暂时性计算机可读媒体,其中,当由所述电子装置的所述处理器执行时使所述电子装置识别所述区域的所述指令,当由所述电子装置的所述处理器执行时,使所述电子装置:
确定与所述不连续的对应物理地址相关联的所述一或多个逻辑地址的数量是否满足阈值。
12.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
识别所述多个区域中具有与所述多个物理地址的所述不连续的对应物理地址相关联的所述一或多个逻辑地址的第二区域;
至少部分地基于确定写入放大因子满足阈值来抑制重新排列存储在与所述第二区域相关联的所述不连续的对应物理地址内的信息。
13.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
至少部分地基于识别所述区域来确定所述区域的读取计数是否满足阈值,其中重新排列所述信息至少部分基于确定所述读取计数满足所述阈值。
14.根据权利要求10所述的非暂时性计算机可读媒体,其中,当由所述电子装置的所述处理器执行时使所述电子装置重新排列所述信息的所述指令,当由所述电子装置的所述处理器执行时,使所述电子装置:
读取与所述多个物理地址相关联的所述数据;和
至少部分地基于读取所述数据,将与所述多个物理地址相关联的所述数据写入所述多个区域中具有与所述多个物理地址的连续的对应物理地址相关联的所述一或多个逻辑地址的第二区域,其中重新排列所述信息至少部分地基于读取所述数据和写入所述数据。
15.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
至少部分地基于重新排列所述信息,将所述多个物理地址中的第一物理地址存储在所述存储器系统的逻辑到物理表中。
16.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
在所述存储器系统的逻辑到物理表中存储指示符,所述指示符指示至少部分地基于重新排列所述信息,将存储在所述不连续的对应物理地址内的所述信息重新排列到所述连续物理地址内。
17.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
接收访问所述区域中的逻辑块地址的命令;和
至少部分地基于接收所述命令,在与逻辑到物理表相关联的高速缓冲存储器中加载所述区域的所述逻辑到物理表的表示,其中所述表示包括第一物理地址,并且不包括对应于所述区域的所述连续物理地址中的附加物理地址。
18.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令当由所述电子装置的所述处理器执行时,进一步使所述电子装置:
至少部分地基于识别所述区域来确定具有与所述多个物理地址中的所述不连续的对应物理地址相关联的所述一或多个逻辑地址的所述区域是否被占用;和
至少部分地基于确定所述区域被占用来选择所述区域,其中重新排列所述信息至少部分地基于选择所述区域。
19.一种方法,其包含:
对于包含多个逻辑地址区域和根据多个物理地址排列的多个存储器单元的存储器系统,识别所述多个区域中具有与所述多个物理地址的不连续的对应物理地址相关联的一或多个逻辑地址的区域;
确定对所述多个存储器单元的存取操作的不活动的时间段;和
在所述不活动的时间段期间,将存储在所述不连续的对应物理地址内的信息重新排列在所述多个物理地址的连续物理地址内。
20.根据权利要求19所述的方法,其中识别所述区域进一步包含:
确定与所述不连续的对应物理地址相关联的所述一或多个逻辑地址的数量是否满足阈值。
21.根据权利要求19所述的方法,其进一步包含:
识别所述多个区域中具有与所述多个物理地址的所述不连续的对应物理地址相关联的一或多个逻辑地址的第二区域;
至少部分地基于确定写入放大因子满足阈值来抑制对存储在与所述第二区域相关联的所述不连续的对应物理地址内的信息的重新排列。
22.根据权利要求19所述的方法,其进一步包含:
至少部分地基于识别所述区域来确定所述区域的读取计数是否满足阈值,其中重新排列所述信息至少部分地基于确定所述读取计数满足所述阈值。
23.根据权利要求19所述的方法,其中重新排列所述信息进一步包含:
读取与所述多个物理地址相关联的所述数据;和
至少部分地基于读取所述数据,将与所述多个物理地址相关联的所述数据写入到所述多个区域中具有与所述多个物理地址的连续对应物理地址相关联的所述一或多个逻辑地址的第二区域,其中重新排列所述信息至少部分基于读取所述数据和写入所述数据。
24.根据权利要求19所述的方法,其进一步包含:
至少部分地基于重新排列所述信息,将所述多个物理地址中的第一物理地址存储在所述存储器系统的逻辑到物理表中。
25.根据权利要求19所述的方法,其进一步包含:
在所述存储器系统的逻辑到物理表中存储指示符,所述指示符指示至少部分地基于重新排列所述信息,将存储在所述不连续的对应物理地址内的所述信息重新排列在所述连续物理地址内。
CN202180006261.2A 2021-05-05 2021-05-05 用于逻辑到物理表压缩的数据组织 Pending CN115605850A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/091817 WO2022232969A1 (en) 2021-05-05 2021-05-05 Data organization for logical to physical table compression

Publications (1)

Publication Number Publication Date
CN115605850A true CN115605850A (zh) 2023-01-13

Family

ID=83932593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180006261.2A Pending CN115605850A (zh) 2021-05-05 2021-05-05 用于逻辑到物理表压缩的数据组织

Country Status (3)

Country Link
US (1) US20240078176A1 (zh)
CN (1) CN115605850A (zh)
WO (1) WO2022232969A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291194B2 (en) * 2009-11-16 2012-10-16 Mediatek Inc. Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof
US9671971B2 (en) * 2015-03-27 2017-06-06 Intel Corporation Managing prior versions of data for logical addresses in a storage device
US10229051B2 (en) * 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
WO2017212515A1 (ja) * 2016-06-06 2017-12-14 株式会社日立製作所 ストレージシステム、計算機、およびストレージ制御方法
US11042323B2 (en) * 2019-06-29 2021-06-22 Intel Corporation Offload defrag operation for host-managed storage

Also Published As

Publication number Publication date
US20240078176A1 (en) 2024-03-07
WO2022232969A1 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
CN115904221A (zh) 高速缓存块预算技术
CN115248662A (zh) 动态超级块
CN114882927A (zh) 存储器装置的事件管理
CN114822670A (zh) 有效数据感知媒体可靠性扫描
US11755490B2 (en) Unmap operation techniques
US11847468B2 (en) Data defragmentation for a system boot procedure having random indexes indicating a relationship between sequential logical addresses and random logical addresses
CN115951932A (zh) 用于命令序列调整的技术
WO2022193130A1 (en) Managing regions of a memory system
CN115373587A (zh) 用于废弃项目收集的页面有效性表颜色
CN114647378A (zh) 用于垃圾收集的有效数据标识
WO2022232969A1 (en) Data organization for logical to physical table compression
US20240078020A1 (en) Write booster pinning
US11687291B2 (en) Techniques for non-consecutive logical addresses
WO2024020707A1 (en) Memory performance evaluation using address mapping information
US20230367710A1 (en) Data defragmentation control
US11977758B2 (en) Assigning blocks of memory systems
CN115373592B (zh) 用于页线填充数据的设备、非暂时性计算机可读介质及方法
US20240078031A1 (en) Dividing blocks for special functions
US20230342060A1 (en) Techniques for data transfer operations
CN113885786B (zh) 用于垃圾收集的数据分离
US20240020016A1 (en) Metadata allocation in memory systems
US20240086070A1 (en) Read disturb management for memory
US11762771B2 (en) Advanced power off notification for managed memory
US20240020053A1 (en) Techniques for firmware enhancement in memory devices
US20240053900A1 (en) Sequential write operations using multiple memory dies

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