CN116360681A - 利用大小减小的逻辑到物理映射表来执行存储器存取操作 - Google Patents
利用大小减小的逻辑到物理映射表来执行存储器存取操作 Download PDFInfo
- Publication number
- CN116360681A CN116360681A CN202211696857.2A CN202211696857A CN116360681A CN 116360681 A CN116360681 A CN 116360681A CN 202211696857 A CN202211696857 A CN 202211696857A CN 116360681 A CN116360681 A CN 116360681A
- Authority
- CN
- China
- Prior art keywords
- entry
- data structure
- logical address
- identified
- page table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
- Memory System (AREA)
Abstract
本申请涉及利用大小减小的逻辑到物理映射表来执行存储器存取操作。在易失性存储器装置上维持包括多个逻辑到物理L2P表条目的L2P数据结构。每一L2P表条目包括对应于非易失性存储器装置的块编号和页表索引。在所述易失性存储器装置上维持各自包括多个物理到逻辑P2L表条目的多个P2L数据结构。所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地涉及利用大小减小的逻辑到物理映射表来执行存储器存取操作。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一个方面中,本申请涉及一种系统,其包括:易失性存储器装置;非易失性存储器装置;以及处理装置,其以操作方式与所述易失性存储器装置和所述非易失性存储器装置耦合,以执行包括以下各项的操作:在所述易失性存储器装置上维持包括多个逻辑到物理(L2P)表条目的L2P数据结构,其中每一L2P表条目包括对应于所述非易失性存储器装置的块编号和页表索引;以及在所述易失性存储器装置上维持各自包括多个物理到逻辑(P2L)表条目的多个P2L数据结构,其中所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
在另一方面中,本申请涉及一种方法,其包括:响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,基于逻辑到物理(L2P)数据结构的与所述逻辑地址相关联的条目而标识多个物理到逻辑(P2L)数据结构中的物理到逻辑(P2L)数据结构;搜索所述多个P2L数据结构中的所标识P2L数据结构以获得与所述逻辑地址相关联的物理地址;以及将所述所标识P2L数据结构的与所述逻辑地址匹配的条目转换成所述物理地址。
在另一方面中,本申请涉及一种包括指令的非暂时性计算机可读媒体,所述指令响应于处理装置进行的执行而使所述处理装置执行包括以下各项的操作:响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,基于逻辑到物理(L2P)数据结构的与所述逻辑地址相关联的条目而标识多个物理到逻辑(P2L)数据结构中的物理到逻辑(P2L)数据结构;搜索所述多个P2L数据结构中的所标识P2L数据结构以获得与所述逻辑地址相关联的物理地址;以及将所述所标识P2L数据结构的与所述逻辑地址匹配的条目转换成所述物理地址。
附图说明
根据下文给出的具体实施方式和本公开的各个实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限于具体实施例,而是仅用于解释和理解。
图1示出了根据本公开的一些实施例的包含存储器子系统的示例计算系统。
图2示出了根据本公开的一些实施例的大小减小的逻辑到物理映射表。
图3A和3B示出了根据本公开的一些实施例的基于大小减小的逻辑到物理映射表而搜索物理到逻辑映射表。
图4为根据本公开的一些实施例的鉴于大小减小的逻辑到物理映射表而执行媒体管理操作的示例方法的流程图。
图5为根据本公开的一些实施例的鉴于大小减小的逻辑到物理映射表来执行媒体管理操作的示例方法的流程图。
图6为根据本公开的一些实施例的利用大小减小的逻辑到物理映射表来执行存储器存取操作的示例方法的流程图。
图7为根据本公开的一些实施例的利用大小减小的逻辑到物理映射表来执行存储器存取操作的示例方法的流程图。
图8为本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及实施映射数据结构以减小逻辑到物理映射表的存储大小。存储器子系统可以为存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供将要存储在存储器子系统处的数据并且可以请求将要从存储器子系统检索的数据。
存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可以由一或多个存储器平面(“平面”)组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块(“块”)集合组成。每一块由页的集合组成。每一页由存储器信元(“信元”)的集合组成。信元为存储信息的电子电路。取决于信元类型,信元可以存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值(例如,“0”和“1”)或此类值的组合表示。
存储器装置可以由布置在二维或三维网格中的位构成。存储器信元蚀刻到列(下文也称为位线)和行(下文也称为字线)的阵列中的硅晶片上。字线可以指存储器装置的存储器信元的一或多个行,所述一或多个行与一或多个位线一起使用以生成存储器信元中的每一者的地址。位线和字线的相交点构成存储器信元的地址。下文中,块是指存储器装置的用于存储数据的单元,并且可以包含存储器信元群组、字线群组、字线或个别存储器信元。可以将一或多个块分组在一起以形成存储器装置的平面,以便允许在每一平面上进行并发操作。存储器装置可以包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。例如,存储器装置可以包含用于存储器装置的每一平面的相应存取线驱动器电路和电力电路以促进对包含不同页类型的两个或更多个存储器平面的页进行并发存取。
例如,存储器子系统(例如,SSD)的存储器装置(例如,NAND)可以与各自提供存储器装置的一部分(例如,存储体积)的逻辑表示的多个逻辑单元(LU)相关联。每一LU分配有逻辑单元号(LUN),其供主机系统使用以在LU使用合适的接口标准附接到主机系统时标识所述LU。例如,LUN可以与存储器装置的平面相关联,且每一平面可以包含多个物理转换单元(TU)。TU对应于由存储器装置管理的数据的基础粒度。例如,每一TU可以对应于定义存储器装置相对于特定LUN和平面的物理位置的物理地址。在一些实例中,给定LUN可以包含4个平面,且所述平面中的每一者可以包含4个TU(例如,每LUN有16个TU)。
存储器子系统控制器(“控制器”)可以负责在易失性存储器(例如,SRAM或DRAM)上维持逻辑到物理(L2P)映射数据结构(例如,L2P映射表)。L2P映射表维持多个逻辑地址到相应物理地址的一对一映射。例如,就NAND快闪存储器而言,逻辑地址可以为逻辑转换单元(LTU)的一个实例。逻辑地址可以对应于存储器装置上的多个连续物理地址(例如,16个LTU、32个LTU和64个LTU)。就NAND快闪存储器而言,物理地址可以被称为快闪物理地址(PA)。例如,如果L2P映射数据结构维持表示为LTU0到LTU31的32个LTU和表示为PA0到PA31的32个PA,则L2P映射数据结构可以定义LTU0到LTU31与PA0到PA31中的相应者之间的映射。
在从主机系统接收到指定逻辑地址(例如,LTU)的数据存取请求(例如,读取命令和/或写入命令)之后,将逻辑地址转换成存储器装置的对应物理地址(例如,LUN、平面、TU)以处理数据存取请求。为此,可以维持L2P映射表以管理转换。因此,L2P映射表的每一条目存储包含存储器装置的物理地址(例如,LUN、块、页、平面和TU)的数据结构。如果数据依序写入到存储器装置的连续位置,则连续的LTU可以存在于相同的块或页中。
一般来说,随着越来越多地使用NAND技术,将NAND的大小设置为增大(例如,128TB)。影响存储器子系统的大小的主要组件为NAND、控制器和DRAM,其按需要调整以补偿增大的大小。在常规的存储器子系统中,对于每一DRAM单元,存储器子系统通常包含一千个NAND单元(例如,对于8TB NAND驱动器,L2P映射表大致需要约8GB的DRAM)。因此,如果NAND的大小增大到128TB,则存储器子系统将需要最少128GB的DRAM,这可能会由于存储器子系统的面积和材料清单的成本而越来越困难。
在一些实施例中,为了最小化DRAM组件的大小,TU的大小已增大(例如,从标准的4K TU大小增大一倍)。例如,通过使TU的大小增大一倍,可以使DRAM大小减半。然而,每秒随机写入输入/输出操作(IOPS)的性能受到严重影响,从而导致写入放大增加。在其它实施例中,为了最小化DRAM组件的大小,实施映射表交换以在DRAM与NAND之间交换和高速缓存部分映射表。由于在DRAM与NAND之间交换和高速缓存部分映射表,因此DRAM大小变成动态的,而无需为所需大小。然而,随机读取和写入的性能受到严重影响,从而导致写入放大增加。因此,与随机读取和写入性能相关联的性能影响以及写入放大降低了存储器子系统的耐久性和性能。
本公开的各方面通过提供减小L2P表的每一条目的大小的存储器子系统来解决以上和其它不足。在一些实施例中,可以通过将与物理到逻辑(P2L)映射数据结构(例如,页表)相关联的块编号和页表索引存储在每一条目中来减小L2P表的每一条目的大小。因此,在从主机系统接收到指定逻辑地址的数据存取请求(例如,读取命令和/或写入命令)之后,存取存储于与逻辑地址相关联的L2P表的条目中的与块编号和页表索引相关联的页表。取决于实施例,每一页表包含每一物理地址的逻辑地址信息(例如,LTU信息)。因此,通过获得与包含与数据存取请求相关联的LTU的页表的条目相关联的物理地址来将逻辑地址转换成存储器装置的对应物理地址。
本公开的优点包含但不限于减小存储器装置的DRAM的大小,同时通过减小L2P映射表的每一条目的大小来维持性能和写入放大。
图1示出了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可以为存储装置、存储器模块,或存储装置和存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可以包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1示出了耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管有线还是无线的,包含例如电气、光学、磁性等的连接。
主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可以包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如以将数据写入存储器子系统110和从存储器子系统110读取数据。
主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1示出了存储器子系统110作为实例。一般来说,主机系统120可以经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器信元的交叉点阵列。非易失性存储器信元的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以在不预先擦除非易失性存储器信元的情况下对非易失性存储器信元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可以包含一或多个存储器信元阵列。一种类型的存储器信元,例如单层信元(SLC)每信元可以存储一个位。其它类型的存储器信元,例如多层信元(MLC)、三层信元(TLC)、四层信元(QLC)和五层信元(PLC)每信元可以存储多个位。在一些实施例中,存储器装置130中的每一者可以包含一或多个存储器信元阵列,例如SLC、MLC、TLC、QLC、PLC或其任何组合。在一些实施例中,特定存储器装置可以包含存储器信元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器信元可以分组为可指代用于存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,NAND),页可以分组以形成块。
尽管描述了非易失性存储器组件,例如非易失性存储器信元的3D交叉点阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可以与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据等操作以及其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可以包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可以包含处理装置,所述处理装置包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。尽管图1中的示例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,并且可以替代地依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
一般来说,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成命令指令以存取存储器装置130,并且将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可以从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器信元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含表管理组件113,其可以在易失性存储器装置(例如,存储器装置140)中维持L2P映射表或映射表(例如,L2P数据结构)和多个页表(例如,P2L数据结构)。L2P映射表的每一条目存储对应于非易失性存储器装置(例如,存储器装置130)上的物理位置的块编号和页表索引。如上文所提及,常规存储器子系统中的映射表的每一条目将通常包含具有11个位的LUN、具有10个位的块、具有12个位的页、具有2个位的平面,以及具有2个位的TU,它们产生映射表的具有37个位的每一条目。相比而言,通过存储具有10个位的块编号和具有11个位的页表索引,每一条目的总位大小减小16个位。多个页表中的每一页表与P2L映射表的一部分相关联。
表管理组件113响应于从主机系统120接收到对存储器装置130的逻辑地址执行存储器存取操作的请求而从通过存取映射表的逻辑地址而相关联的多个页表中标识页表,以获得与多个页表中的页表相关联的块编号和页表索引。因此,为了将逻辑地址转换成物理地址,表管理组件113在页表中搜索逻辑地址。在一些实施例中,为了在页表中搜索逻辑地址,表管理组件113以从页表的最后一个条目开始到页表的第一条目的相反次序遍历页表的每一条目。利用页表的每一条目,表管理组件113确定页表的条目(例如,逻辑地址)是否与和数据存取请求相关联的逻辑地址匹配。一旦发现页表的与和数据存取请求相关联的逻辑地址匹配的条目,表管理组件113就基于匹配逻辑地址在页表中的位置(例如,页表的索引)而构成与匹配逻辑地址相关联的物理地址。
取决于实施例,表管理组件113可以加快针对逻辑地址的页表搜索。为了加快针对逻辑地址的页表搜索,表管理组件113将页表分割为多个连续部分以保存页表的原始次序。表管理组件113以从页表的每一连续部分的最后一个条目开始到页表的每一连续部分的第一条目的相反次序,并行地遍历每一连续部分的每一条目。
对于每一连续部分,表管理组件113确定页表的多个连续部分中的相应连续部分的条目(例如,逻辑地址)是否与和数据存取请求相关联的逻辑地址匹配。如果页表的多个连续部分中的相应连续部分的条目与和数据存取请求相关联的逻辑地址匹配,则表管理组件113基于匹配逻辑地址在页表的多个连续部分中的相应连续部分中的位置(例如,页表的索引)而传回与匹配逻辑地址相关联的物理地址。如果页表的多个连续部分中的相应连续部分没有条目与和数据存取请求相关联的逻辑地址匹配,则表管理组件113传回指示未发现条目的值。因此,每一结果以页表的多个连续部分的对应于与页表的原始次序相关联的次序的次序存储。一旦完成对逻辑地址的页表搜索,表管理组件113就选择包含物理地址的最新结果。
取决于实施例,响应于媒体管理操作(例如,垃圾收集),表管理组件113从映射表获得多个页表。在垃圾收集期间,对于多个页表中的每一页表,表管理组件113遍历页表的每一条目以确定映射表中的基于页表的条目的物理地址(例如,使用LTU作为索引以获得映射表中的物理地址)是否与页表的当前位置(例如,页表的索引)匹配。因此,如果映射表中的物理地址与页表的当前位置匹配,则表管理组件113对物理地址执行折叠操作。取决于实施例,折叠操作可以包含收集非垃圾数据(即,仍被映射的地址)且将其重新定位到新位置。可以删除任何剩余数据(例如,垃圾数据)以允许重新使用块。
然而,这是因为每一映射表仅包含块编号和页表索引,且每一页表包含具有相同逻辑地址的多个条目。在遍历相应页表的每一条目以确定映射表中的基于页表的条目的块编号和页表索引是否与页表的当前位置匹配之后,表管理组件113将确定具有相同逻辑地址的多个条目中的每一者将匹配,由此利用每一匹配来触发物理地址的折叠操作。多次执行折叠操作不会产生数据完整性问题,然而,随着每一添加的折叠操作,操作性开销和写入放大增加。
在一个实施例中,为了减少针对具有相同逻辑地址的多个条目中的每一者执行的折叠操作的次数,在垃圾收集操作期间,表管理组件113针对页表(例如,当前页表)的从页表的第一条目开始的每一条目,确定映射表中的对应于当前页表的条目的逻辑地址的块编号和页表索引是否与当前页表匹配。为了确定与当前页表的条目的逻辑地址相关联的块编号和页表索引是否与当前页表匹配,表管理组件113确定块编号和页表索引是否指向当前页表。如果块编号和页表索引指向当前页表,则表管理组件113构成与当前页表的条目相关联的物理地址以与和包含指向当前页表的块编号和页表索引的映射表的条目相关联的物理地址(即,逻辑地址的已更新物理地址)进行比较。如果块编号和页表索引不指向当前页表,则表管理组件113进行到当前页表的下一条目以重复所述过程。
如上文所提及,为了构成与包含指向当前页表的块编号和页表索引的映射表的条目相关联的物理地址,表管理组件113以从当前页表的最后一个条目开始到当前页表的第一条目的相反次序遍历当前页表的每一条目以确定当前页表的条目,所述条目与和包含指向当前页表的块编号和页表索引的映射表的条目相关联的位置的逻辑地址匹配。一旦页表的条目与和包含指向当前页表的块编号和页表索引的映射表的条目相关联的位置的逻辑地址匹配,表管理组件113就基于匹配逻辑地址在当前页表中的位置而构成与匹配逻辑地址相关联的物理地址。
如果与当前页表的条目相关联的物理地址与和包含指向当前页表的块编号和页表索引的映射表的条目相关联的物理地址匹配,则表管理组件113对物理地址执行折叠操作。如果与当前页表的条目相关联的物理地址与和包含指向当前页表的块编号和页表索引的映射表的条目相关联的物理地址不匹配,则表管理组件113进行到当前页表的下一条目以重复所述过程。
在又另一实施例中,为了进一步优化垃圾收集操作,在垃圾收集操作期间,针对页表(例如,当前页表)的从页表的最后一个条目开始的每一条目,表管理组件113确定页表的条目是否无效(例如,包含0xFFFFFFFFFF)。如果页表的条目有效(例如,包含除0xFFFFFFFFFF以外的任何值),则表管理组件113确定映射表中的对应于当前页表的条目的逻辑地址的块编号和页表索引(例如,映射表中的对应于感兴趣的逻辑地址的块编号和页表索引)是否与当前页表匹配。为了确定与当前页表的条目的逻辑地址相关联的块编号和页表索引是否与当前页表匹配,表管理组件113确定块编号和页表索引是否指向当前页表。如果页表的条目无效(例如,包含值0xFFFFFFFFFF),则表管理组件113进行到当前页表的下一条目以重复所述过程。
如果块编号和页表索引指向当前页表,则表管理组件113对物理地址执行折叠操作(即,与已更新物理地址相关联的最后一个TU被折叠)。在对物理地址执行折叠操作之后,表管理组件113针对当前页表的每一条目确定条目的相应逻辑地址是否与感兴趣的逻辑地址匹配。如果条目的相应逻辑地址与感兴趣的逻辑地址匹配,则表管理组件113重写条目的值以指示所述条目无效(例如,具有值0xFFFFFFFFFF)。一旦与感兴趣的逻辑地址匹配的每一条目被值0xFFFFFFFFFF重写,表管理组件113就进行到当前页表的下一条目以重复所述过程。如果块编号和页表索引不指向当前页表,则表管理组件113进行到当前页表的下一条目以重复所述过程。下文描述关于表管理组件113的操作的另外细节。
在一些实施例中,存储器子系统控制器115包含表管理组件113的至少一部分。在一些实施例中,表管理组件113为主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含表管理组件113的至少一部分且经配置以执行本文中所描述的功能性。
图2示出了逻辑到物理(L2P)映射数据结构(例如,映射表200)以及映射表200的多个物理到逻辑(P2L)映射数据结构(例如,页表210A-D)。映射表200和映射表200的多个页表210A-D存储于易失性存储器140(图1)中。映射表200包含具有到相应物理地址(例如,TU)的一对一映射的多个逻辑地址(例如,LTU)。因此,映射表的每一LTU对应于LUN、平面和页。每一LTU包含与LTU相关联的TU。每一TU定义与逻辑地址相关联的物理地址,并且包含标识与物理地址相关联的块的块编号和标识包含与物理地址相关联的逻辑地址的页表的页索引。
映射表的每一页表210A-D涵盖具有相同页索引的每一LUN中的块的若干页。另外,映射表的每一页表210A-D涵盖具有相同块编号的每一LUN中的每一块条状物。映射表的页表210A-D(例如,页表230)的每一条目记录页表所涵盖的每一物理地址(例如,LUN、平面、页、TU)的LTU信息。因此,为了获得LTU的物理地址,从与LTU相关联的映射表的条目检索块编号和页表索引。在对应于块编号和页表索引的页表(例如,页表230或页表210A-D中的一者)中搜索与LTU相关联的物理地址。
图3A和3B示出了基于大小减小的逻辑到物理映射表而搜索物理到逻辑映射表。参考图3A,展示了页表310的搜索方法300。响应于接收到对逻辑地址177(例如,LTU177)执行存储器存取操作的请求,LTU 177包含指向页表310的块编号和页表索引。每一页表包含与LTU 177相关联的多个物理地址(例如,316A-C)。页表(例如,310)的最新条目对应于多个物理地址的最新物理地址(例如,316A)。为了获得LTU 177的最新物理地址,从页表310的最后一个条目(例如,条目312)到页表310的第一条目(例如,条目314)搜索(例如,遍历)页表310。
为了完全遍历整个页表310,将每一条目(即,LTU)与逻辑地址(LTU 177)进行比较以确定所述条目是否与逻辑地址(LTU 177)匹配。通过从条目312遍历到页(例如,页3)的开头来选择每一条目。如果未发现匹配,则选择下一页(例如,页2)的最后一个条目,且接着遍历到页的开头(例如,页2的第一条目)。如果未发现匹配,则选择下一页(例如,页1)的最后一个条目,且接着遍历到页的开头(例如,页1的第一条目)。如果未发现匹配,则选择下一页(例如,页0)的最后一个条目,且接着遍历到页的开头(例如,页0的第一条目)。遍历中的第一条目与逻辑地址(LTU 177)匹配,搜索结束且确定基于匹配条目的物理地址。如果没有条目与逻辑地址(LTU 177)匹配,则搜索完成且未确定物理地址。基于页表中的匹配条目的位置构成物理地址(例如,LUN、平面、页和TU)。例如,遍历中的与逻辑地址(LTU 177)匹配的第一条目为条目316A,因此基于位于LUN7、平面1、页3和TU3中的条目316A而构成物理地址。
参考图3B,展示了页表340的搜索方法330。响应于接收到对逻辑地址177(例如,LTU 177)执行存储器存取操作的请求,LTU 177包含指向页表340的块编号和页表索引。每一页表包含与LTU 177相关联的多个物理地址(例如,360A-C)。页表的最新条目对应于多个物理地址的最新物理地址(例如,360A)。为了获得LTU 177的最新物理地址,从页表340的最后一个条目到页表340的第一条目搜索(例如,遍历)页表340。为了加快搜索,将页表340分割成多个连续部分(例如,分割部分342、344、348、350)(即,在分割之前根据部分的位置维持部分的次数)。每一分割部分可以为页、多个页、页的子集或页表的条目的任何其它合适的分组。
因此,为了遍历整个页表340,并行地遍历每一分割部分342、344、348、350。将每一分割部分342、344、348、350的每一条目(即,LTU)与逻辑地址(LTU 177)进行比较以确定条目是否与逻辑地址(LTU 177)匹配。类似于搜索方法300,通过从每一分割部分342、344、348、350的最后一个条目遍历到每一分割部分342、344、348、350的开头来选择每一条目。如果在特定分割部分中未发现匹配,则传回指示搜索已完成和/或未发现匹配的结果(例如,结果372、374、376、378)。如果在特定分割部分中发现匹配,则传回指示与特定分割部分中的最新物理地址相关联的物理地址的结果(例如,结果372、374、376、378)。
基于页表中的匹配条目的位置构成物理地址(例如,LUN、平面、页和TU)。例如,分割部分342传回的结果372将为未发现匹配或搜索完成;分割部分344传回的结果374将为与条目360C(例如,位于LUN0、平面1、页1和TU2中的条目360C)相关联的物理地址;部分348传回的结果376将为未发现匹配或搜索完成;并且部分350传回的结果378将为与条目360A(例如,位于LUN7、平面1、页3和TU3中的条目360A)相关联的物理地址。如图3B所示,由于条目360A在达到条目360B之前与逻辑地址(LTU 177)匹配,因此将不会传回条目360B。以连续次序维持结果372、374、376和378以确保选择最新物理地址。为了选择最新物理地址,从最后一个结果(例如,结果378)开始到第一结果(例如,结果372)确定哪一个是具有物理地址的第一结果。具有物理地址的第一结果是最新物理地址。例如,结果378包含物理地址,因此结果378(例如,位于LUN7、平面1、页3和TU3中的条目360A)为与逻辑地址(LTU 177)相关联的物理地址。
图4为根据本公开的一些实施例的鉴于大小减小的逻辑到物理映射表而执行媒体管理操作的示例方法400的流程图。可以通过处理逻辑执行方法400,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的表管理组件113执行。尽管以特定顺序或次序示出,但除非另外规定,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作410,处理逻辑选择页表的条目。在一些实施例中,选择页表的第一条目作为页表的当前条目。在一个实施例中,随时间推移,从页表的第一条目到最后一个条目依序选择每一条目。
在操作420,处理逻辑根据页表的当前条目构成物理地址。如先前所描述,页表的每一条目的位置对应于物理地址(例如,LUN、平面、页和TU)。因此,基于页表的当前条目的位置构成物理地址(例如,LUN、平面、页和TU)。
在操作430,处理逻辑获得与页表的当前条目相关联的块编号和页表索引。如先前所描述,页表的每一条目具有对应LTU。每一LTU包含块编号和页表索引。因此,基于页表的当前条目中的LTU,获得与页表的当前条目中的LTU相关联的块编号和页表索引。
在操作440,处理逻辑确定与所获得的块和页表索引相关联的页表是否与对应于具有当前条目的页表的页表相同。如先前所描述,可以基于所获得的块编号和页表索引而确定页表。
如果与所获得的块和页表索引相关联的页表与对应于具有当前条目的页表的页表相同,则在操作450,处理逻辑在当前页表中搜索与逻辑地址相关联的最新物理地址。取决于实施例,处理逻辑可以基于搜索方法300(图3A)或搜索方法330(图3B)而执行搜索。
如果与所获得的块和页表索引相关联的页表不与对应于具有当前条目的页表的页表相同,则继续进行到操作410。
在操作460,处理逻辑确定所构成的物理地址是否和与逻辑地址相关联的最新物理地址相同。如果所构成的物理地址与和逻辑地址相关联的最新物理地址相同,则在操作470,处理逻辑对物理地址执行折叠操作。如先前所描述,折叠操作可以包含收集非垃圾数据且将其重新定位到新位置,同时删除剩余的任何垃圾值以允许重新使用块。
如果所构成的物理地址与和逻辑地址相关联的最新物理地址不相同,则继续进行到操作410。
图5为根据本公开的一些实施例的鉴于大小减小的逻辑到物理映射表而执行媒体管理操作的示例方法500的流程图。可以通过处理逻辑执行方法500,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的表管理组件113执行。尽管以特定顺序或次序示出,但除非另外规定,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作510,处理逻辑选择页表的条目。在一些实施例中,选择页表的最后一个条目作为页表的当前条目。从页表的最后一个条目到第一条目选择每一条目。
在操作520,处理逻辑确定页表的条目中的逻辑地址是否与预定值匹配。预定值为指示逻辑地址无效的0xFFFFFFFFFF。如果页表的条目中的逻辑地址与预定值(例如,0xFFFFFFFFFF)匹配,则继续进行到操作510。
如果页表的条目中的逻辑地址与预定值(例如,0xFFFFFFFFFF)不匹配,则在操作530,处理逻辑获得与页表的当前条目相关联的块编号和页表索引。如先前所描述,页表的每一条目具有对应LTU。每一LTU包含块编号和页表索引。因此,基于页表的当前条目中的LTU,获得与页表的当前条目中的LTU相关联的块编号和页表索引。
在操作540,处理逻辑确定与所获得的块和页表索引相关联的页表是否与对应于页表的当前条目的页表相同。如先前所描述,可以基于所获得的块编号和页表索引而确定页表。如果与所获得的块和页表索引相关联的页表与对应于具有当前条目的页表的页表相同,则在操作550,处理逻辑对物理地址执行折叠操作。如先前所描述,折叠操作可以包含收集非垃圾数据且将其重新定位到新位置,同时删除剩余的任何垃圾值以允许重新使用块。
如果与所获得的块和页表索引相关联的页表不与对应于具有当前条目的页表的页表相同,则继续进行到操作510。
在操作560,处理逻辑使与页表的条目中的逻辑地址匹配的当前页表的每一条目无效。通过从最后一个条目到第一条目遍历页表且用预定值(例如,0xFFFFFFFFFF)替换与逻辑地址匹配的每一条目,来使当前页表的每一条目失效。一旦用预定值(例如,0xFFFFFFFFFF)替换与逻辑地址匹配的当前页表的每一条目,处理逻辑就继续进行到操作510。
图6为根据本公开的一些实施例的利用大小减小的逻辑到物理映射表来执行存储器存取操作的示例方法600的流程图。可以通过处理逻辑执行方法600,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1的表管理组件113执行。尽管以特定顺序或次序示出,但除非另外规定,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作610,处理逻辑在易失性存储器装置上维持包括多个映射表条目的逻辑到物理(L2P)数据结构(例如,映射表)。每一映射表条目包括对应于非易失性存储器装置的块编号和页表索引。在操作620,处理逻辑在易失性存储器装置上维持各自包括页表条目的多个物理到逻辑(P2L)数据结构(例如,页表),其中多个页表中的每一者对应于映射表的一部分。
在一些实施例中,响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,处理装置标识与逻辑地址相关联的物理地址以执行存储器存取操作。为了标识与逻辑地址相关联的物理地址以执行存储器存取操作,处理逻辑标识多个页表中的页表,包括与基于存储于和逻辑地址相关联的映射表条目中的块编号和页表索引的逻辑地址相关联的物理地址。如先前所描述,映射表包含多个页表。映射表的每一页表涵盖具有相同页索引的每一LUN中的块的若干页。另外,每一页表涵盖具有相同块编号的每一LUN中的每一块条状物。页表的每一条目记录页表所涵盖的每一物理地址(例如,LUN、平面、页、TU)的LTU信息。
在一些实施例中,处理逻辑搜索多个页表中的所标识页表以获得与逻辑地址相关联的物理地址。为了在所标识页表中搜索逻辑地址以获得与逻辑地址相关联的物理地址,处理逻辑以从所标识页表的最后一个条目开始到所标识页表的第一条目的相反次序遍历所标识页表的每一条目,直到所标识页表的条目与逻辑地址匹配。在一些实施例中,处理逻辑将所标识页表的与逻辑地址匹配的条目转换成物理地址(例如,构成物理地址)。如先前所描述,基于页表中的匹配条目的位置构成物理地址(例如,LUN、平面、页和TU)。
取决于实施例,为了搜索多个页表中的所标识页表以获得与逻辑地址相关联的物理地址,类似于搜索方法330(图3),处理逻辑将所标识页表分割成指示自身在所标识页表中的次序的多个连续部分,并且以从最后一个条目开始到第一条目的相反次序并行地遍历所标识页表的多个连续部分的每一条目,直到所标识页表的相应部分中的所标识页表的条目与逻辑地址匹配或达到所标识页表的多个连续部分中的相应部分中的第一条目而不与逻辑地址匹配。在一些实施例中,处理逻辑将与所标识页表的多个连续部分的最新部分相关联的所标识页表的与逻辑地址匹配的条目转换成物理地址(例如,构成物理地址)。如先前所描述,基于页表中的匹配条目的位置构成物理地址(例如,LUN、平面、页和TU)。
取决于实施例,处理逻辑接收执行垃圾收集操作的请求。在垃圾收集操作期间,针对从相应页表的第一条目开始到相应页表的最后一个条目的多个页表中的相应页表的每一条目,处理逻辑确定与页表的相应条目相关联的页表是否与相应页表匹配。响应于确定与页表的相应条目相关联的页表与相应页表匹配,处理逻辑获得与相应页表的相应条目相关联的第一物理地址,并且基于相应页表的相应条目的逻辑地址而在页表中搜索第二物理地址。处理逻辑确定第一物理地址是否与第二物理地址匹配。响应于确定第一物理地址与第二物理地址匹配,处理逻辑对物理地址执行折叠操作。
取决于实施例,处理逻辑接收执行垃圾收集操作的请求。在垃圾收集操作期间,针对从相应页表的最后一个条目开始到相应页表的第一条目的相应页表的每一条目,处理逻辑确定相应P2L数据结构的相应条目的值是否与预定值匹配。如先前所描述,预定值为指示逻辑地址无效的0xFFFFFFFFFF。响应于确定相应页表的相应条目的值与预定值不匹配,处理逻辑确定与页表的相应条目相关联的页表条目是否与相应页表匹配。响应于确定映射表条目与相应页表匹配,处理逻辑对物理地址执行折叠操作。在对物理地址执行折叠操作之后,对于从最后一个条目开始到第一条目的相应页表的每一条目,处理逻辑基于与和相应条目相关联的逻辑地址匹配的条目而替换用指示条目无效的预定值(例如,0xFFFFFFFFFF)重写条目。
图7为根据本公开的一些实施例的利用大小减小的逻辑到物理映射表来执行存储器存取操作的示例方法700的流程图。可以通过处理逻辑执行方法700,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法700由图1的表管理组件113执行。尽管以特定顺序或次序示出,但除非另外规定,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作710,响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,处理逻辑标识多个页表中的物理到逻辑(P2L)数据结构(例如,页表)。每一L2P表条目包含对应于非易失性存储器装置的块编号和页表索引。所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
在操作720,处理逻辑搜索多个页表中的所标识页表以获得与逻辑地址相关联的物理地址。如先前所描述,参考搜索方法300(图3A)或搜索方法330(图3B),为了搜索多个P2L数据结构中的所标识P2L数据结构以获得与逻辑地址相关联的物理地址。例如,处理逻辑以从所标识P2L数据结构的最后一个条目开始到所标识P2L数据结构的第一条目的相反次序遍历所标识P2L数据结构的每一条目,直到所标识P2L数据结构的条目与逻辑地址匹配。
在操作730,处理逻辑将页表的与逻辑地址匹配的条目转换成物理地址。
取决于实施例,处理逻辑接收执行垃圾收集操作的请求。在垃圾收集操作期间,针对从相应页表的最后一个条目开始到相应页表的第一条目的相应页表的每一条目,处理逻辑确定相应P2L数据结构的相应条目的值是否与预定值匹配。如先前所描述,预定值为指示逻辑地址无效的0xFFFFFFFFFF。响应于确定相应页表的相应条目的值与预定值不匹配,处理逻辑确定与页表的相应条目相关联的页表条目是否与相应页表匹配。响应于确定映射表条目与相应页表匹配,处理逻辑对物理地址执行折叠操作。在对物理地址执行折叠操作之后,对于从最后一个条目开始到第一条目的相应页表的每一条目,处理逻辑基于与和相应条目相关联的逻辑地址匹配的条目而替换用指示条目无效的预定值(例如,0xFFFFFFFFFF)重写条目。
图8示出了计算机系统800的示例机器,所述示例机器内可以执行用于使得所述机器执行本文所论述的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统800可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,执行操作系统以执行对应于图1的表管理组件113的操作)。在替代实施例中,所述机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管示出了单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多种方法。
示例计算机系统800包含经由总线830彼此通信的处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或RDRAM等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统818。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置802也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置802经配置以执行指令826,以用于执行本文中所论述的操作和步骤。计算机系统800可以进一步包含通过网络820通信的网络接口装置808。
数据存储系统818可以包含机器可读存储媒体824(也称为计算机可读媒体),在所述机器可读存储媒体上存储有指令826的一或多个集或体现本文中所描述的任何一或多种方法或功能的软件。指令826还可以在其由计算机系统800执行期间完全或至少部分地驻存在主存储器804内和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818,和/或主存储器804可以对应于图1的存储器子系统110。
在一个实施例中,指令826包含用以实施对应于表管理组件(例如,图1的表管理组件113)的功能性的指令。尽管机器可读存储媒体824在示例实施例中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储供机器执行的指令的集或对所述指令的集进行编码以及使机器执行本公开的方法中的任何一或多种方法的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是引起期望结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但不一定呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数量等是方便的。
然而,应牢记,所有这些和类似术语应与恰当的物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指计算机系统或类似电子计算装置的操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据并将所述数据变换为计算机系统的存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的动作和过程。
本公开还涉及用于执行本文中的操作的设备。可以出于预期目的而专门构造此设备,或所述设备可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或者适于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可以与根据本文中的教示的程序一起使用,或其可以证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可以使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其具体示例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种系统,其包括:
易失性存储器装置;
非易失性存储器装置;以及
处理装置,其以操作方式与所述易失性存储器装置和所述非易失性存储器装置耦合,以执行包括以下各项的操作:
在所述易失性存储器装置上维持包括多个逻辑到物理L2P表条目的L2P数据结构,其中每一L2P表条目包括对应于所述非易失性存储器装置的块编号和页表索引;以及
在所述易失性存储器装置上维持各自包括多个物理到逻辑P2L表条目的多个P2L数据结构,其中所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
2.根据权利要求1所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
响应于从主机系统接收到对所述非易失性存储器装置的逻辑地址执行存储器存取操作的请求,标识与所述逻辑地址相关联的物理地址以执行所述存储器存取操作。
3.根据权利要求2所述的系统,其中标识与所述逻辑地址相关联的所述物理地址以执行所述存储器存取操作包含标识所述多个P2L数据结构中的P2L数据结构,包括与所述逻辑地址相关联的所述物理地址,所述逻辑地址基于存储于与所述逻辑地址相关联的L2P表条目中的所述块编号和页表索引。
4.根据权利要求3所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
搜索所述多个P2L数据结构中的所标识P2L数据结构以获得与所述逻辑地址相关联的所述物理地址。
5.根据权利要求4所述的系统,其中在所述多个P2L数据结构中的所述所标识P2L数据结构中搜索所述逻辑地址以获得与所述逻辑地址相关联的所述物理地址包含以从所述所标识P2L数据结构的最后一个条目开始到所述所标识P2L数据结构的第一条目的相反次序遍历所述所标识P2L数据结构的每一条目,直到所述所标识P2L数据结构的条目与所述逻辑地址匹配。
6.根据权利要求5所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
将所述所标识P2L数据结构的与所述逻辑地址匹配的所述条目转换成所述物理地址。
7.根据权利要求4所述的系统,其中搜索所述多个P2L数据结构中的所述所标识P2L数据结构以获得与所述逻辑地址相关联的所述物理地址包含将所述所标识P2L数据结构分割成指示自身在所述所标识P2L数据结构中的次序的多个连续部分,并且以从最后一个条目开始到第一条目的相反次序并行地遍历所述所标识P2L数据结构的所述多个连续部分的每一条目,直到出现以下情况中的一者:所述所标识P2L数据结构的相应部分中的所述所标识P2L数据结构的条目与所述逻辑地址匹配,或达到所述所标识P2L数据结构的所述多个连续部分的所述相应部分中的所述第一条目而不与所述逻辑地址匹配。
8.根据权利要求7所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
将与所述所标识P2L数据结构的所述多个连续部分的最新部分相关联的所述所标识P2L数据结构的与所述逻辑地址匹配的所述条目转换成所述物理地址。
9.根据权利要求1所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
接收执行垃圾收集操作的请求;
针对从相应P2L数据结构的第一条目开始到所述相应P2L数据结构的最后一个条目的所述多个P2L数据结构中的所述相应P2L数据结构的每一条目,确定与所述相应P2L数据结构的相应条目相关联的P2L数据结构是否与所述相应P2L数据结构匹配;
获得与所述相应P2L数据结构的所述相应条目相关联的第一物理地址;
基于所述相应P2L数据结构的相应条目的所述逻辑地址而在所述相应P2L数据结构中搜索第二物理地址;
确定所述第一物理地址是否与所述第二物理地址匹配;以及
响应于确定所述第一物理地址与所述第二物理地址匹配,折叠与所述相应P2L数据结构的所述相应条目相关联的所述逻辑地址。
10.根据权利要求1所述的系统,其中所述处理装置用以执行进一步包括以下各项的操作:
接收执行垃圾收集操作的请求;
针对从相应P2L数据结构的最后一个条目开始到所述相应P2L数据结构的第一条目的所述相应P2L数据结构的每一条目,确定所述相应P2L数据结构的相应条目的值是否与预定值匹配;
响应于确定所述相应P2L数据结构的所述相应条目的所述值与所述预定值不匹配,确定与所述相应P2L数据结构的相应条目相关联的L2P表条目是否与所述相应P2L数据结构匹配;
响应于确定所述L2P表条目与所述相应P2L数据结构匹配,折叠与所述相应P2L数据结构的所述相应条目相关联的所述逻辑地址;以及
针对从最后一个条目开始到第一条目的所述相应P2L数据结构的每一条目,基于与和所述相应条目相关联的所述逻辑地址匹配的所述条目,而替换用指示所述条目无效的所述预定值重写所述条目。
11.一种方法,其包括:
响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,基于逻辑到物理L2P数据结构的与所述逻辑地址相关联的条目而标识多个物理到逻辑P2L数据结构中的物理到逻辑P2L数据结构;
搜索所述多个P2L数据结构中的所标识P2L数据结构以获得与所述逻辑地址相关联的物理地址;以及
将所述所标识P2L数据结构的与所述逻辑地址匹配的条目转换成所述物理地址。
12.根据权利要求11所述的方法,其中搜索所述多个P2L数据结构中的所述所标识P2L数据结构以获得与所述逻辑地址相关联的所述物理地址包含以从所述所标识P2L数据结构的最后一个条目开始到所述所标识P2L数据结构的第一条目的相反次序遍历所述所标识P2L数据结构的每一条目,直到所述所标识P2L数据结构的条目与所述逻辑地址匹配。
13.根据权利要求11所述的方法,其中每一L2P表条目包括对应于非易失性存储器装置的块编号和页表索引。
14.根据权利要求11所述的方法,其中所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
15.根据权利要求11所述的方法,其进一步包括:
接收执行垃圾收集操作的请求;
针对从相应P2L数据结构的最后一个条目开始到所述相应P2L数据结构的第一条目的所述相应P2L数据结构的每一条目,确定所述相应P2L数据结构的相应条目的值是否与预定值匹配;
响应于确定所述相应P2L数据结构的所述相应条目的所述值与所述预定值不匹配,确定与所述相应P2L数据结构的相应条目相关联的L2P表条目是否与所述相应P2L数据结构匹配;
响应于确定所述L2P表条目与所述相应P2L数据结构匹配,折叠与所述相应P2L数据结构的所述相应条目相关联的所述逻辑地址;以及
针对从最后一个条目开始到第一条目的所述相应P2L数据结构的每一条目,基于与和所述相应条目相关联的所述逻辑地址匹配的所述条目,而替换用指示所述条目无效的所述预定值重写所述条目。
16.一种包括指令的非暂时性计算机可读媒体,所述指令响应于处理装置进行的执行而使所述处理装置执行包括以下各项的操作:
响应于从主机系统接收到对非易失性存储器装置的逻辑地址执行存储器存取操作的请求,基于逻辑到物理L2P数据结构的与所述逻辑地址相关联的条目而标识多个物理到逻辑P2L数据结构中的物理到逻辑P2L数据结构;
搜索所述多个P2L数据结构中的所标识P2L数据结构以获得与所述逻辑地址相关联的物理地址;以及
将所述所标识P2L数据结构的与所述逻辑地址匹配的条目转换成所述物理地址。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中搜索所述多个P2L数据结构中的所述所标识P2L数据结构以获得与所述逻辑地址相关联的所述物理地址包含以从所述所标识P2L数据结构的最后一个条目开始到所述所标识P2L数据结构的第一条目的相反次序遍历所述所标识P2L数据结构的每一条目,直到所述所标识P2L数据结构的条目与所述逻辑地址匹配。
18.根据权利要求16所述的非暂时性计算机可读媒体,其中每一L2P表条目包括对应于非易失性存储器装置的块编号和页表索引。
19.根据权利要求16所述的非暂时性计算机可读媒体,其中所述多个P2L数据结构中的每一者对应于所述L2P数据结构的一部分。
20.根据权利要求16所述的非暂时性计算机可读媒体,其中使所述处理装置进一步执行包括以下各项的操作:
接收执行垃圾收集操作的请求;
针对从相应P2L数据结构的最后一个条目开始到所述相应P2L数据结构的第一条目的所述相应P2L数据结构的每一条目,确定所述相应P2L数据结构的相应条目的值是否与预定值匹配;
响应于确定所述相应P2L数据结构的所述相应条目的所述值与所述预定值不匹配,确定与所述相应P2L数据结构的相应条目相关联的L2P表条目是否与所述相应P2L数据结构匹配;
响应于确定所述L2P表条目与所述相应P2L数据结构匹配,折叠与所述相应P2L数据结构的所述相应条目相关联的所述逻辑地址;以及
针对从最后一个条目开始到第一条目的所述相应P2L数据结构的每一条目,基于与和所述相应条目相关联的所述逻辑地址匹配的所述条目,而替换用指示所述条目无效的所述预定值重写所述条目。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163294495P | 2021-12-29 | 2021-12-29 | |
US63/294,495 | 2021-12-29 | ||
US17/582,783 US11940925B2 (en) | 2021-12-29 | 2022-01-24 | Performing memory access operations with a logical-to-physical mapping table with reduced size |
US17/582,783 | 2022-01-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116360681A true CN116360681A (zh) | 2023-06-30 |
Family
ID=86898003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211696857.2A Pending CN116360681A (zh) | 2021-12-29 | 2022-12-28 | 利用大小减小的逻辑到物理映射表来执行存储器存取操作 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11940925B2 (zh) |
CN (1) | CN116360681A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9122579B2 (en) * | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US20180260319A1 (en) * | 2017-03-10 | 2018-09-13 | Toshiba Memory Corporation | Writing ssd system data |
US10621342B2 (en) * | 2017-11-02 | 2020-04-14 | Microsoft Technology Licensing, Llc | Speculative side channel attack mitigation using uncacheable memory |
KR20190052368A (ko) * | 2017-11-08 | 2019-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102649131B1 (ko) * | 2018-08-14 | 2024-03-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 |
TWI775268B (zh) * | 2021-01-07 | 2022-08-21 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
-
2022
- 2022-01-24 US US17/582,783 patent/US11940925B2/en active Active
- 2022-12-28 CN CN202211696857.2A patent/CN116360681A/zh active Pending
-
2024
- 2024-02-21 US US18/582,926 patent/US20240193096A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11940925B2 (en) | 2024-03-26 |
US20240193096A1 (en) | 2024-06-13 |
US20230205707A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553099B (zh) | 主机常驻转换层写入命令 | |
CN113031856B (zh) | 存储器子系统中的断电数据保护 | |
US11640354B2 (en) | Logical-to-physical mapping of data groups with data locality | |
JP2023514307A (ja) | 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化 | |
CN113035262A (zh) | 存储器子系统中奇偶校验数据的管理 | |
CN117121107A (zh) | 使用内容可寻址存储器的用于经排序字符串表的密钥存储 | |
CN118394687A (zh) | 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令 | |
CN117916719A (zh) | 存储器中的存取跟踪 | |
CN113849424A (zh) | 依序编程的存储器子系统中的直接高速缓存命中和传递 | |
US20230350798A1 (en) | Namespace management for memory sub-systems | |
KR20210045506A (ko) | 하이브리드 듀얼 인-라인 메모리 모듈에서의 캐시 작업 | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
US11816345B2 (en) | Zone block staging component for a memory subsystem with zoned namespace | |
US11940925B2 (en) | Performing memory access operations with a logical-to-physical mapping table with reduced size | |
CN113495695B (zh) | 用于存取命令的高速缓存标识符 | |
CN113010447B (zh) | 用于存储器子系统的媒体管理的快照读取优化 | |
US11934685B2 (en) | Performing memory access operations based on quad-level cell to single-level cell mapping table | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
CN113360089B (zh) | 用于存储器子系统的命令批处理 | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US20230393981A1 (en) | Lbat bulk update | |
US20240160349A1 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
CN115827689A (zh) | 数据库持久化 | |
CN115843379A (zh) | 用来改进顺序存储器命令性能的存储器命令聚合 | |
CN118585465A (zh) | 预测中心分配数据结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |