CN115080458A - 在存储器子系统中高速缓存逻辑到物理映射信息 - Google Patents
在存储器子系统中高速缓存逻辑到物理映射信息 Download PDFInfo
- Publication number
- CN115080458A CN115080458A CN202210251626.4A CN202210251626A CN115080458A CN 115080458 A CN115080458 A CN 115080458A CN 202210251626 A CN202210251626 A CN 202210251626A CN 115080458 A CN115080458 A CN 115080458A
- Authority
- CN
- China
- Prior art keywords
- memory device
- entry
- read cache
- physical
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
- 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/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
接收指定与针对存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求。存取逻辑到物理L2P表。所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射。标识所述L2P表中与所述逻辑地址相对应的条目,并且确定所述条目指向读取高速缓存表中的条目。基于所述读取高速缓存表中的所述条目的条目编号,计算来自读取高速缓存器的多个区块当中的区块的区块地址。通过存取所述读取高速缓存器的所述区块来标识与所述请求指定的所述逻辑地址相对应的物理地址。在所述存储器装置的所述第一部分内对应于所述物理地址的物理位置处执行主机起始的操作。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,并且更具体地说,涉及高速缓存存储器子系统的逻辑到物理(L2P)映射信息。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器组件可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可使用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。
发明内容
附图说明
根据下文给出的具体实施方式并且根据本公开的各种实施例的附图将更加充分地理解本公开。
图1是示出根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。
图2A和2B是示出根据本公开的一些实施例的用于存储器子系统的实例架构的框图。
图3是示出根据本公开的一些实施例的由存储器子系统实施的实例高速缓存算法的框图。
图4-6是示出根据本公开的一些实施例的用于使用存储在NAND存储器装置的专用部分中的逻辑到物理(L2P)表的实例方法的流程图。
图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及用于存储器子系统中的逻辑到物理(L2P)映射信息的高速缓存技术。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。通常,主机系统可使用包含例如存储数据的存储器装置之类的一或多个组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据并且可请求将从存储器子系统检索的数据。
数据操作可以由存储器子系统执行。数据操作可为主机起始的操作。例如,主机系统可以在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,并且从存储器子系统上的存储器装置读取数据。
存储器装置可为非易失性存储器装置。非易失性存储器装置的一个实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。例如NAND存储器装置等一些存储器装置包含用以存储数据的存储器单元阵列(例如,快闪单元)。每个单元包含晶体管,并且在每个单元内,数据被存储为晶体管的阈值电压。更具体地说,晶体管的阈值电压的范围可被划分成多个区,其中每个区对应于解码成数据值的电荷电平。这些装置中的存储器单元可被分组为可指代用以存储数据的存储器装置的逻辑单元的页。一个类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如,多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可以每单元存储多个位。存储器装置可包含SLC、MLC、TLC、QLC或其任何组合的一或多个阵列。
在存储器子系统的上下文内,物理地址标识存储器装置中的数据的物理位置。逻辑地址是主机系统用作存取对应于存储器装置中的物理位置的数据单位的参考的虚拟地址。数据单位可对应于块、页或子页。存储器子系统维持逻辑到物理(L2P)表(还被称作“数据映射”)以处理从主机系统接收到的存取请求。L2P表包含物理地址与逻辑地址之间的映射。传统上,L2P表存储于存储器子系统的动态随机存取存储器(DRAM)组件中。
存储器装置内的NAND单元密度以一较高速率增大,这增加了装置中的物理存储器位置的数目。随着物理存储器位置的数目增加,L2P表的大小增大,这需要增加的DRAM大小要求能够存储较大L2P表。然而,尽管NAND单元密度稳定增大,但DRAM密度在某种程度上保持相对稳定,这是因为除增加DRAM与存储器子系统控制器介接的复杂性之外,较大数目个DRAM组件还可使硬件布局不可行。
解决L2P表的大小增大的常规方法包含增大映射间接大小单位(例如,从4KB增大到8-16KB)以减少用于存储L2P表的DRAM要求。然而,此方法常常导致增加的写入放大。另一常规方法包含使用分页以从快闪存储器到DRAM对L2P表的区段分页。然而,由于对L2P表的更新,此方法造成刷新率过高。此方法还增加由快闪转换层(FTL)元数据利用的快闪存储器的量,这可导致与其它方法相比,性能和耐久性受损。
本公开的各方面通过使用NAND存储器装置来存储L2P表并且使用读取高速缓存器来快速处理来自存储在NAND存储器装置上的L2P表的L2P查找请求来解决存储器子系统中的大L2P表大小的问题。NAND存储器装置的部分专用于存储主要L2P数据,而其余部分用于存储用户数据。例如,L2P表可存储于存储器装置的SLC部分中,同时用户数据存储于QLC部分中。除使用常规的间接单位大小(例如,4KB)的初级快闪转换层之外,存储器子系统进一步包含具有减小的间接单位大小(例如,256字节而非4KB)的次级细粒度FTL,其与初级FTL一起工作以处理主机起始的操作。在执行查找时,次级FTL使用次级L2P表(例如,存储于DRAM中)以标识具有专用部分的物理位置,所述专用部分中存储有初级L2P表的相关部分。次级FTL从专用部分(例如,SLC部分)存取初级L2P表的相关部分以标识对应于主机命令所针对的逻辑地址的物理地址。初级FTL继而在所标识的物理地址处执行主机起始的操作。
如上文所提及的,存储器子系统包含用于初级L2P表以用于受限地点工作负载的读取高速缓存器(例如,在DRAM中)。在多个区块中管理读取高速缓存器,并且每个区块存储初级L2P表的部分。每个区块的大小与次级FTL使用的间接单位大小相对应。在高速缓存器未中的情况下,次级FTL存取存储初级L2P表的部分的专用部分内的物理位置,并且将初级L2P表的读取部分高速缓存在读取高速缓存器中。在高速缓存命中的情况下,次级FTL可通过从读取高速缓存器的区块存取相关部分来快速标识与主机命令所针对的逻辑地址相对应的物理地址。以此处所描述的方式使用读取高速缓存器减少高速缓存器未中比率。
将初级L2P数据存储在NAND存储器装置中而非DRAM中是有益的,因为这允许DRAM的占用面积减少。在NAND密度继续增大时,解决越来越大的L2P表的问题的此方法也可扩展。另外,将初级L2P数据存储在NAND存储器中使用较少FTL元数据预算,同时与常规方法相比还显著减少了启动之后的预备时间。
图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的多个主机系统。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的实例主机系统120。如本文所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电、光学、磁性等的连接。
主机系统120可包含由处理器芯片组执行的处理器芯片组和软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由主机接口耦合到存储器子系统110。主机接口的实例包含但不限于SATA接口、PCIe接口、USB接口、光纤通道、串行连接的SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、DIMM接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。主机接口可用于在主机系统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)和3D NAND。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一个类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如,多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可以每单元存储多个位。在一些实施例中,每个存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。例如,NAND存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。另外,存储器装置内的字线可被组织成多个字线组,其中的每一个包含一或多个字线,但每个字线组包含的字线比块中包含的字线少。
尽管描述了例如NAND型快闪存储器(例如,2D NAND、3D NAND)和3D交叉点非易失性存储器单元阵列等非易失性存储器组件,但存储器装置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和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ECC操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。
存储器子系统110还包含初级快闪转换层(FTL)113和次级FTL 114。初级FTL 113执行查找和垃圾收集。初级FTL 113使用用于查找的第一间接单位大小(例如,4KB)。次级FTL 114提供用于初级FTL 113的虚拟持久性存储器以存储初级L2P表。初级L2P表存储于存储器装置130的第一部分(例如,存储器装置130的SLC部分)中。初级L2P表包含存储器装置130的第二部分(例如,QLC部分)中的逻辑地址与物理地址之间的映射。次级FTL 114使用初级L2P表处理来自初级FTL 113的针对存储器装置130的第二部分(例如,一或多个QLC块)的读取和写入命令。次级FTL 114使用小于初级FTL 113所使用的第一间接单位大小的第二间接单位大小(例如,256字节)。
当针对对应于存储器装置130的第二部分的逻辑地址的读取或写入命令由初级FTL113接收到时,初级FTL 113将查找请求发送到次级FTL 114。响应于请求,次级FTL114从存储器子系统110的易失性存储器组件,例如DRAM或全息随机存取存储器(HRAM)存取次级L2P表。次级L2P表包含存储有初级L2P表的存储器装置130的第一部分中的逻辑地址与物理地址之间的映射。因此,次级FTL 114使用次级L2P表标识存储器装置130的第一部分内与初级L2P表的部分相对应的物理位置,所述部分包含存储器装置130的第二部分中逻辑地址到物理地址的映射。次级FTL 114存取初级L2P表的部分以标识存储器装置130的第二部分中的物理地址,所述物理地址与基于命令将读取或写入数据的位置相对应。次级FTL 114将物理地址作为输出提供到初级FTL 113,并且初级FTL 113转而基于命令在存储器装置130的第二部分中与由次级FTL 114标识的物理地址相对应的物理位置处执行操作(例如,写入、读取或擦除数据)。
在一些实施例中,存储器子系统控制器115包含初级FTL 113和次级FTL 114的至少一部分。例如,存储器子系统控制器115可包含处理器117(处理装置),所述处理器被配置成执行存储在本地存储器119中的指令以用于执行本文所描述的操作。在一些实施例中,初级FTL 113和次级FTL 114的至少一部分为主机系统120、应用程序或操作系统的部分。
图2A和2B是示出根据本公开的一些实施例的用于存储器子系统110的实例架构的框图。在图2A和2B中示出的实例中,存储器装置130为包含多个存储器块的NAND存储器装置。
参考图2A,存储器装置130包含QLC块200和SLC块202。具体来说,每个QLC块200包含QLC,并且每个SLC块202包含SLC。通常,NAND块包含页(行)和串(列)的阵列(2D或3D)。每个NAND单元包含晶体管,并且在每个单元内,数据被存储为晶体管的阈值电压。例如,SLCNAND每单元可存储一个位。其它类型的存储器单元,例如,MLC、TLC、QLC和PLC每单元可存储多个位。串在NAND块内连接以允许存储和检索来自所选择单元的数据。同一列中的NAND单元串联连接以形成位线。位线中的所有单元在一个末端上连接到共同接地,并且在另一末端上连接到共同感测放大器以用于当解码数据时读取单元中的一个的阈值电压。NAND单元在其控制栅极处水平地连接到字线(WL)以形成页。在MLC、TLC、QLC和PLC NAND中,页为共享同一字线并且为编程的最小单位的一组连接单元。
存储器子系统110进一步包含主机接口204(例如,NVMe)以用于主机系统120将存取请求(例如,写入命令、读取命令)发送到存储器装置130,以便将数据存储在存储器装置130上或从存储器装置130读取数据。
后端信道206促进NAND块(QLC块200和SLC块202)与初级FTL 113以及次级FTL 114之间的通信。如上文所提及,次级FTL 114提供用于初级FTL 113的虚拟持久性存储器以存储初级L2P表208。由SLC块202实施虚拟持久性存储器。也就是说,初级L2P表208存储于SLC块202中。初级L2P表208包含QLC块200中的逻辑地址与物理地址之间的映射。次级FTL 114使用初级L2P表208处理来自初级FTL 113的针对一或多个QLC块200的读取和写入命令。次级FTL 114使用小于初级FTL 113所使用的第一间接单位大小的第二间接单位大小(例如,256字节)。
当从初级FTL 113接收到指定与QLC块200相对应的逻辑地址的查找请求时,次级FTL 114存取次级L2P表212以标识SLC块202内的物理位置,在所述物理位置处存储初级L2P表208的对应部分。次级L2P表212可存储于存储器子系统110的易失性存储器组件210中,例如DRAM或全息随机存取存储器(HRAM)。易失性存储器组件210可连同QLC块200和SLC块202形成存储器装置130的部分,或易失性存储器组件210可对应于或形成另一存储器装置(例如,存储器装置140)的部分。使用次级L2P表212,次级FTL 114标识对应于SLC块202内的物理位置的物理地址,并且存取初级L2P表208的部分以标识QLC块200中与基于命令将读取或写入数据的物理位置相对应的物理地址。次级FLT 114将QLC块200中的物理地址提供到初级FTL 113,所述初级FTL 113转而在QLC块200内与所标识物理地址相对应的物理位置处执行主机起始的操作。
如图2B所示,根据一些实施例,次级FTL 114可采用读取高速缓存器214来辅助执行查找。可在易失性存储器组件210中实施读取高速缓存器214。读取高速缓存表216还可连同次级L2P表212一起存储在易失性存储器组件210中。在多个区块中管理读取高速缓存器214,并且高速缓存表216中的每个条目对应于区块。每个区块的大小对应于次级L2P表212利用的间接单位大小。如上所述,在此实例中,次级L2P表212的间接单位大小为256字节,并且因此,高速缓存表216中的每个条目对应于读取高速缓存器214的256字节区块。读取高速缓存器214的每个区块包含初级L2P表208的部分。
高速缓存表216中的每个条目在逻辑上链接到SLC块202中的存储器的对应区块。也就是说,高速缓存表216中的每个条目编号可用于计算SLC块202中的对应区块的物理地址。下文论述关于读取高速缓存表216的使用的其它细节。
图3是示出根据本公开的一些实施例的由存储器子系统110实施的实例高速缓存算法的框图。更具体地说,图3示出在多个情形中的存储器子系统的行为-在302处的高速缓存未中、在304处的高速缓存命中和在306处的未清除高速缓存命中。
参考302,当对应于主机命令中的所请求逻辑地址的条目未包含于读取高速缓存表216中时,发生高速缓存未中。在高速缓存未中的情况下,次级FTL 114直接使用次级L2P表212标识SLC块202中的物理位置,在所述物理位置处存储初级L2P表208的部分。初级L2P表208的部分高速缓存在读取高速缓存器214中,并且新条目创建在读取高速缓存表216中。可从初级L2P表208的部分标识对应于主机命令中的逻辑地址的QLC块200中的物理地址。
如果在高速缓存未中发生时读取高速缓存器214满了,则次级FTL 114随机选择对应于高速缓存未中的新条目并且用其取代读取高速缓存表216中的条目。读取高速缓存表216从开始分配到结束,因为读取高速缓存器214在通电之后填满。读取高速缓存表216中的新条目在逻辑上链接到初级L2P表208的最新高速缓存部分,原因在于可根据读取高速缓存表216中的条目直接计算对应于读取高速缓存器214中的最新高速缓存部分的地址,如下文将论述。
参考304,当对应于主机命令中的所请求逻辑地址的条目包含于读取高速缓存表216中时,发生高速缓存命中。在高速缓存命中的情况下,次级L2P表212指向读取高速缓存表216中的条目。次级FTL 114基于由次级L2P表212指向的读取高速缓存表216中的条目的条目编号计算对应于读取高速缓存器214的区块的地址。读取高速缓存器214的区块包含初级L2P表208的部分,可从所述部分标识QLC块200内的物理位置。在实例中,读取高速缓存器214中的256字节块的地址可如下计算:区块地址=cacheTableEntry#*chunksize+baseAddress,其中“cacheTableEntry#”为读取高速缓存表216中的条目编号,“chunksize”为读取高速缓存器214中的区块的单位大小,并且“baseAddress”对应于由主机命令指定的逻辑地址。次级FTL 114存取读取高速缓存器214的区块以确定QLC块200中对应于主机命令中指定的逻辑地址的物理地址。
与传统方法相比,以此方式维持读取高速缓存器214减少计算资源利用(例如,存储器和CPU处理能力)。例如,因为可根据读取高速缓存表216条目直接计算读取高速缓存地址,所以不需要维持读取高速缓存表216中最近使用的(LRU)列表或自由条目的列表,其中的每一个将需要额外存储器资源。此外,由于高速缓存表216条目与实际读取高速缓存器214资源之间存在固定映射,因此消除了维持用于每个条目的前向指针和后向指针的需要,由此减少存储读取高速缓存表216所需的存储器资源量。
参考306,在未清除高速缓存命中的情况下,次级L2P表212指向未清除高速缓存表308中的条目。未清除高速缓存表308中的条目包含QLC块200中与读取高速缓存器214中的未清除区块相关联的物理地址。条目在逻辑上链接到缓冲器310中的条目,其中累积用于次级L2P表212的对应部分的经更新数据。一旦缓冲器满了,就将来自缓冲器310的数据编程到SLC块202。
图4-6是示出根据本公开的一些实施例的用于通过将目标电荷电平的指示符传送到存储器装置而将数据编程到存储器装置的实例方法400的流程图。方法400可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理装置执行。在一些实施例中,处理装置包含图1的初级FTL 113和次级FTL 114。根据这些实施例,方法400的任何一或多个操作可由初级FTL 113或次级FTL 114执行。尽管以特定顺序或次序示出过程,但除非另外指定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。其它过程流程也是可能的。
在操作405处,处理装置接收指定与针对存储器装置(例如,存储器装置130)的主机起始的数据操作(例如,读取、写入或擦除)相关联的逻辑地址的请求。请求可包含从主机系统(例如,主机系统120)接收到的存取请求(例如,写入命令、读取命令)或基于所述存取请求。逻辑地址由来自主机系统的存取请求指定。
在一些实施例中,存储器装置为包含至少SLC部分和QLC部分的NAND存储器装置。也就是说,存储器装置包含SLC块和QLC块。在这些实施例中,逻辑地址可对应于存储器装置的QLC部分内的物理位置。
处理装置标识存储器装置的第一部分内与包含于请求中的逻辑地址相对应的物理位置(操作410)。物理位置对应于由处理装置根据初级L2P表确定的物理地址。在存储器装置为NAND存储器装置的实施例中,处理装置标识存储器装置的QLC部分内与根据逻辑地址确定的物理地址相对应的物理位置。
在一些实施例中,处理装置的初级FTL接收与主机起始的数据操作相关联的请求,并且次级FTL负责标识存储器装置的第一部分中的物理地址。根据这些实施例,初级FTL可产生查找请求并且将所述查找请求提供到包含逻辑地址的次级FTL,并且次级FTL可响应于查找请求而将物理地址提供到初级FTL。下文参考图5论述关于由次级FTL执行的操作的其它细节。
在操作415处,处理装置在存储器装置的第一部分中的物理位置处执行主机起始的数据操作。例如,处理装置可从物理位置读取数据或将数据写入到物理位置。
如图5所示,在一些实施例中,方法400可包含操作505、510、515、520和525。根据这些实施例,可执行操作505、510、515、520和525作为操作410的部分,其中处理装置标识对应于请求中的逻辑地址的物理位置。在一些实施例中,响应于接收到由初级FTL基于由初级FTL从主机系统接收到的存取请求产生的查找请求,通过处理装置的次级FTL执行操作505、510、515、520和525。
在操作505处,处理装置存取存储在易失性存储器组件(例如,易失性存储器组件210)中的次级L2P表(例如,次级L2P表212)。次级L2P表包含逻辑地址与专用于存储初级L2P表(例如,初级L2P表208)的存储器装置的第二部分内的物理地址之间的映射。初级L2P表包含逻辑地址与存储器装置的主机起始的操作所针对的第一部分(例如,存储器装置的存储用户数据的部分)内的物理地址之间的映射。初级L2P表使用第一间接大小(例如,4KB),而次级L2P表使用小于第一间接大小的第二间接大小(例如,256字节)。
在存储器装置为具有SLC部分和QLC部分的NAND存储器装置的实施例中,次级L2P表包含存储器装置的SLC部分内的逻辑地址与物理地址之间的映射,所述存储器装置中存储初级L2P表。根据这些实施例,初级L2P表包含存储器装置的QLC部分内的逻辑地址与物理地址之间的映射。
处理装置标识存储器装置的第二部分内对应于与请求中的逻辑地址相关联的初级L2P表的部分的物理位置(操作510)。也就是说,初级L2P表的部分指定存储器装置的第一部分内与请求中的逻辑地址相对应的物理地址。在一些实施例中,处理装置基于由次级L2P表指定的物理地址而确定存储器装置的第二部分内的物理位置。在一些实施例中,处理装置基于从读取高速缓存器读取的数据确定存储器装置的第二部分内的物理位置。
在前述操作的实例中,处理装置标识存储器装置的SLC部分内与初级L2P表的部分对应的物理位置,所述初级L2P表中提供存储器装置的QLC部分中的逻辑地址与物理地址之间的映射。在此实例中,处理装置基于由次级L2P表指定的物理地址标识SLC部分内的物理位置。
在操作515处,处理装置从存储器装置的第二部分中的物理位置存取初级L2P表的部分。在操作520处,处理装置基于从存储器装置的第二部分中的物理位置存取的初级L2P表的部分标识存储器装置的第一部分中与请求指定的逻辑地址对应的物理地址。初级L2P表的所存取部分包含存储器装置的第一部分中的逻辑地址到物理地址的映射。在前述操作的实例中,处理装置使用从存储器装置的SLC部分存取的初级L2P表的部分标识存储器装置的QLC部分中的物理地址。
在操作525处,处理装置提供物理地址作为输出。在实例中,处理装置的次级FTL将物理地址作为输出提供到初级FTL以在存储器装置中的物理位置处执行主机起始的操作(写入、读取或擦除)(操作415)。
如图6所示,在一些实施例中,方法400可包含操作605、610、615、620、625、630、635、640、645和650。根据一些实施例,可执行操作605作为操作410的部分,其中处理装置标识对应于请求指定的逻辑地址的物理地址。
在操作605处,处理装置存取存储在易失性存储器组件(例如,易失性存储器组件210)中的次级L2P表(例如,次级L2P表212)。次级L2P表包含逻辑地址与专用于存储初级L2P表(例如,初级L2P表208)的存储器装置的第二部分内的物理地址之间的映射。初级L2P表包含逻辑地址与存储器装置的主机起始的操作所针对的第一部分(例如,存储器装置的存储用户数据的部分)内的物理地址之间的映射。
在操作610处,处理装置确定次级L2P表中的对应条目是否指向读取高速缓存表中与读取高速缓存器相关联的条目。可将读取高速缓存器和读取高速缓存表连同次级L2P表一起维持在易失性存储器组件(例如,DRAM)中。
根据这些实施例,如果处理装置确定次级L2P表中的条目并未指向已发生高速缓存未中的读取高速缓存表条目,则处理装置标识存储器装置的第二部分内对应于与请求中的逻辑地址相关联的初级L2P表的部分的物理位置(操作615)。也就是说,初级L2P表的部分指定存储器装置的第一部分内与请求中的逻辑地址相对应的物理地址。处理装置基于由次级L2P表指定的物理地址确定存储器装置的第二部分内的物理位置。
在操作620处,处理装置从存储器装置的第二部分中的物理位置存取初级L2P表的部分,并且在操作625处,处理装置高速缓存初级L2P表的所存取部分。也就是说,处理装置将L2P表的部分添加到读取高速缓存器的区块。初级L2P表的部分包含存储器装置的第一部分中的逻辑地址到物理地址的映射。
在操作630处,处理装置将与添加到读取高速缓存器的区块的L2P表的部分相对应的新条目添加到读取高速缓存表。读取高速缓存表从开始分配到结束,因为高速缓存器在通电之后填满。如果读取高速缓存表满了,则处理装置随机选择读取高速缓存表中的现有条目并且用新条目替代所述现有条目。
返回到操作610,如果处理装置确定次级L2P表中的条目确实指向读取高速缓存表条目,则发生高速缓存命中,并且处理装置在操作640处存取读取高速缓存表条目。
在操作645处,处理装置基于高速缓存表条目标识来自读取高速缓存器的多个区块当中的读取高速缓存器的区块。每个区块的大小对应于次级L2P表使用的间接大小(例如,256字节)。为了标识区块,处理装置基于表条目的条目编号计算区块地址。作为实例,处理装置可通过将条目编号乘以每个区块的大小并且将乘积添加到请求指定的逻辑地址来计算区块地址。如上文所阐述,通过根据条目直接计算区块地址,处理装置可消除对维持最近使用的(LRU)策略或自由条目池的需要。
在操作650处,处理装置存取所标识的高速缓存区块。所标识的高速缓存区块包含初级L2P表的指定用于请求指定的逻辑地址的物理地址映射(存储器装置的第一部分内)的部分。
在操作635处,处理装置基于从存储器装置的第二部分中的物理位置存取的初级L2P表的部分(在操作620处)或基于从读取高速缓存器的区块存取的初级L2P表的部分(在操作650处)标识存储器装置的第一部分中与请求指定的逻辑地址相对应的物理地址。在实例中,处理装置标识存储器装置的QLC部分中与请求中指定的逻辑地址相对应的物理地址。在高速缓存未中的情况下,处理装置标识来自从存储器装置的SLC部分存取的初级L2P表的物理地址。在高速缓存命中的情况下,处理装置从在易失性存储器(例如,DRAM或HRAM)中实施的读取高速缓存器的区块标识物理地址。
标的物的具体实施方案可包含如下文借助于实例所说明的单独或组合的一或多个特征。
实例1为一种系统,其包含:存储器装置;以及处理装置,其耦合到所述存储器装置,所述处理装置被配置成执行包括以下各项的操作:接收指定与针对所述存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;从易失性存储器组件存取逻辑到物理(L2P)表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;标识所述L2P表中与所述逻辑地址相对应的条目;确定所述L2P表中的所述条目指向读取高速缓存表中的条目;基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
实例2包含根据实例1所述的系统,其中所述区块地址的所述计算进一步基于所述读取高速缓存器中的区块大小和所述请求中指定的所述逻辑地址。
实例3包含根据实例1或2中任何一或多者所述的系统,其中所述区块地址的所述计算包括将所述逻辑地址与所述条目编号乘以所述区块大小的结果相加。
实例4包含根据实例1至3中任何一或多者所述的系统,其中所述L2P表为第一L2P表;并且所述存储器装置的所述第二部分存储第二L2P表,所述第二L2P表包括所述存储器装置的所述第一部分中的逻辑地址与物理地址之间的映射。
实例5包含根据实例1至4中任何一或多者所述的系统,其中:所述请求为第一请求;所述逻辑地址为第一逻辑地址;所述主机起始的操作为第一主机起始的操作;所述条目为第一条目;并且所述操作进一步包括:接收指定与针对所述存储器装置的所述第一部分的第二主机起始的操作相关联的第二逻辑地址的第二请求;标识所述第一L2P表中与所述第二逻辑地址相对应的第二条目;从基于所述第一L2P表中的所述第二条目标识的所述存储器装置的所述第二部分存取所述第二L2P表的部分;以及基于确定所述第一L2P表中的所述条目并不指向所述读取高速缓存表,将所述第二L2P表的经存取部分添加到所述读取高速缓存器。
实例6包含根据实例1至5中任何一或多者所述的系统,其中所述操作进一步包括:将对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的新条目添加到所述读取高速缓存表。
实例7包含根据实例1至6中任何一或多者所述的系统,其中将所述新条目添加到所述读取高速缓存表包括:随机选择所述读取高速缓存表中的现有条目;以及用对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的所述新条目替代所述读取高速缓存表中的所述现有条目。
实例8包含根据实例1至7中任何一或多者所述的系统,其中所述操作进一步包括:基于所述第一L2P表标识所述存储器装置的所述第二部分内与所述第二L2P表的所述部分相对应的物理位置,所述部分指定所述存储器装置的所述第一部分内与所述第二逻辑地址相对应的第二物理地址;以及基于所述第二L2P表的所述部分标识所述存储器装置的所述第一部分内与所述第二请求指定的所述第二逻辑地址相对应的所述第二物理地址;以及在所述存储器装置的所述第一部分内的所述第二物理地址处执行所述第二主机起始的操作。
实例9包含根据实例1至8中任何一或多者所述的系统,其中:所述存储器装置为NAND存储器装置;所述第一部分包括多个四层级单元QLC;并且所述第二部分包括多个单层级单元SLC。
实例10包含根据实例1至9中任何一或多者所述的系统,其中所述主机起始的操作包括以下各项中的一个:读取操作、写入操作或擦除操作。
实例11包含根据实例1至10中任何一或多者所述的系统,其中所述易失性存储器组件包括以下各项中的一个:动态随机存取存储器(DRAM)或全息随机存取存储器(HRAM)。
实例12为一种方法,其包括:由处理装置接收指定与针对存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;从易失性存储器组件存取逻辑到物理(L2P)表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;标识所述L2P表中与所述逻辑地址相对应的条目;基于确定所述L2P表中的所述条目指向读取高速缓存表中的条目,由所述处理装置基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;由所述处理装置基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
实例13包含根据实例12所述的方法,其中所述区块地址的所述计算进一步基于所述读取高速缓存器中的区块大小和所述请求中指定的所述逻辑地址。
实例14包含根据实例12或13中任何一或多者所述的方法,其中所述区块地址的所述计算包括:将所述逻辑地址与所述条目编号乘以所述区块大小的结果相加。
实例15包含根据实例12至14中任何一或多者所述的方法,其中所述L2P表为第一L2P表;并且所述存储器装置的所述第二部分存储第二L2P表,所述第二L2P表包括所述存储器装置的所述第一部分中的逻辑地址与物理地址之间的映射。
实例16包含根据实例12至15中任何一或多者所述的方法,其中:所述请求为第一请求;所述逻辑地址为第一逻辑地址;所述主机起始的操作为第一主机起始的操作;所述条目为第一条目;并且所述操作进一步包括:接收指定与针对所述存储器装置的所述第一部分的第二主机起始的操作相关联的第二逻辑地址的第二请求;标识所述第一L2P表中与所述第二逻辑地址相对应的第二条目;从基于所述第一L2P表中的所述第二条目标识的所述存储器装置的所述第二部分存取所述第二L2P表的部分;以及基于确定所述第一L2P表中的所述条目并不指向所述读取高速缓存表,将所述第二L2P表的经存取部分添加到所述读取高速缓存器。
实例17包含根据实例12至16中任何一或多者所述的方法,其中所述操作进一步包括:将对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的新条目添加到所述读取高速缓存表。
实例18包含根据实例12至17中任何一或多者所述的方法,其中将所述新条目添加到所述读取高速缓存表包括:随机选择所述读取高速缓存表中的现有条目;以及用对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的所述新条目替代所述读取高速缓存表中的所述现有条目。
实例19包含根据实例12至18中任何一或多者所述的方法,其中所述操作进一步包括:基于所述第一L2P表标识所述存储器装置的所述第二部分内与所述第二L2P表的所述部分相对应的物理位置,所述部分指定所述存储器装置的所述第一部分内与所述第二逻辑地址相对应的第二物理地址;以及基于所述第二L2P表的所述部分标识所述存储器装置的所述第一部分内与所述第二请求指定的所述第二逻辑地址相对应的所述第二物理地址;以及在所述存储器装置的所述第一部分内的所述第二物理地址处执行所述第二主机起始的操作。
实例20为一种计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:接收指定与针对存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;从易失性存储器组件存取逻辑到物理(L2P)表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;确定所述L2P表中与所述逻辑地址相对应的条目指向读取高速缓存表中的条目;基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;从所述易失性存储器组件存取所述读取高速缓存器的对应于所述区块地址的所述区块;基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
图7示出呈计算机系统700的形式的实例机器,在其内可执行指令集以使机器执行本文所论述的方法中的任何一或多种。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,运行操作系统以执行对应于图1的初级FTL 113或次级FTL 114的操作)。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接桥,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然示出单个机器,但是还应认为术语“机器”包含机器的任何集合,所述集合单独地或联合地执行指令的集合(或多个集合)以执行本文所论述的方法中的任何一或多种。
实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,ROM、快闪存储器、例如SDRAM或RDRAM的DRAM等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统718。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置702可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。处理装置702被配置成执行指令726,以用于执行本文所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以通过网络720通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文所描述的方法或功能中的任何一或多个的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718,和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以实施对应于FTL(例如,图1的初级FTL 113或次级FTL 114)的功能的指令。虽然在实例实施例中将机器可读存储媒体724示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一个指令集并且使机器执行本公开的方法中的任何一或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在这里并且通常被认为是引起所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而构建,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于各自耦合到计算机系统总线的计算机可读存储媒体中,例如但不限于包含软盘、光盘、CD-ROM和磁性光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体。
本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
处理装置,其耦合到所述存储器装置,所述处理装置被配置成执行包括以下各项的操作:
接收指定与针对所述存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;
从易失性存储器组件存取逻辑到物理L2P表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;
标识所述L2P表中与所述逻辑地址相对应的条目;
确定所述L2P表中的所述条目指向读取高速缓存表中的条目;
基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;
基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及
在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
2.根据权利要求1所述的系统,其中所述区块地址的所述计算进一步基于所述读取高速缓存器中的区块大小和所述请求中指定的所述逻辑地址。
3.根据权利要求2所述的系统,其中所述区块地址的所述计算包括:
将所述逻辑地址与所述条目编号乘以所述区块大小的结果相加。
4.根据权利要求1所述的系统,其中:
所述L2P表为第一L2P表;并且
所述存储器装置的所述第二部分存储第二L2P表,所述第二L2P表包括所述存储器装置的所述第一部分中的逻辑地址与物理地址之间的映射。
5.根据权利要求4所述的系统,其中:
所述请求为第一请求;
所述逻辑地址为第一逻辑地址;
所述主机起始的操作为第一主机起始的操作;
所述条目为第一条目;并且
所述操作进一步包括:
接收指定与针对所述存储器装置的所述第一部分的第二主机起始的操作相关联的第二逻辑地址的第二请求;
标识所述第一L2P表中与所述第二逻辑地址相对应的第二条目;
从基于所述第一L2P表中的所述第二条目标识的所述存储器装置的所述第二部分存取所述第二L2P表的部分;以及
基于确定所述第一L2P表中的所述条目并不指向所述读取高速缓存表,将所述第二L2P表的经存取部分添加到所述读取高速缓存器。
6.根据权利要求5所述的系统,其中所述操作进一步包括:
将对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的新条目添加到所述读取高速缓存表。
7.根据权利要求6所述的系统,其中将所述新条目添加到所述读取高速缓存表包括:
随机选择所述读取高速缓存表中的现有条目;以及
用对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的所述新条目替代所述读取高速缓存表中的所述现有条目。
8.根据权利要求5所述的系统,其中所述操作进一步包括:
基于所述第一L2P表标识所述存储器装置的所述第二部分内与所述第二L2P表的所述部分相对应的物理位置,所述部分指定所述存储器装置的所述第一部分内与所述第二逻辑地址相对应的第二物理地址;以及
基于所述第二L2P表的所述部分标识所述存储器装置的所述第一部分内与所述第二请求指定的所述第二逻辑地址相对应的所述第二物理地址;以及
在所述存储器装置的所述第一部分内的所述第二物理地址处执行所述第二主机起始的操作。
9.根据权利要求1所述的系统,其中:
所述存储器装置为NAND存储器装置;
所述第一部分包括多个四层级单元QLC;并且
所述第二部分包括多个单层级单元SLC。
10.根据权利要求1所述的系统,其中所述主机起始的操作包括以下各项中的一个:读取操作、写入操作或擦除操作。
11.根据权利要求1所述的系统,其中所述易失性存储器组件包括以下各项中的一个:动态随机存取存储器DRAM或全息随机存取存储器HRAM。
12.一种方法,其包括:
由处理装置接收指定与针对存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;
从易失性存储器组件存取逻辑到物理L2P表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;
标识所述L2P表中与所述逻辑地址相对应的条目;
基于确定所述L2P表中的所述条目指向读取高速缓存表中的条目,由所述处理装置基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;
由所述处理装置基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及
在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
13.根据权利要求12所述的方法,其中所述区块地址的所述计算进一步基于所述读取高速缓存器中的区块大小和所述请求中指定的所述逻辑地址。
14.根据权利要求13所述的方法,其中所述区块地址的所述计算包括:
将所述逻辑地址与所述条目编号乘以所述区块大小的结果相加。
15.根据权利要求12所述的方法,其中:
所述L2P表为第一L2P表;并且
所述存储器装置的所述第二部分存储第二L2P表,所述第二L2P表包括所述存储器装置的所述第一部分中的逻辑地址与物理地址之间的映射。
16.根据权利要求15所述的方法,其中:
所述请求为第一请求;
所述逻辑地址为第一逻辑地址;
所述主机起始的操作为第一主机起始的操作;
所述条目为第一条目;并且
所述操作进一步包括:
接收指定与针对所述存储器装置的所述第一部分的第二主机起始的操作相关联的第二逻辑地址的第二请求;
标识所述第一L2P表中与所述第二逻辑地址相对应的第二条目;
从基于所述第一L2P表中的所述第二条目标识的所述存储器装置的所述第二部分存取所述第二L2P表的部分;以及
基于确定所述第一L2P表中的所述条目并不指向所述读取高速缓存表,将所述第二L2P表的经存取部分添加到所述读取高速缓存器。
17.根据权利要求16所述的方法,其中所述操作进一步包括:
将对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的新条目添加到所述读取高速缓存表。
18.根据权利要求17所述的方法,其中将所述新条目添加到所述读取高速缓存表包括:
随机选择所述读取高速缓存表中的现有条目;以及
用对应于添加到所述读取高速缓存器的所述第一L2P表的所述经存取部分的所述新条目替代所述读取高速缓存表中的所述现有条目。
19.根据权利要求16所述的方法,其中所述操作进一步包括:
基于所述第一L2P表标识所述存储器装置的所述第二部分内与所述第二L2P表的所述部分相对应的物理位置,所述部分指定所述存储器装置的所述第一部分内与所述第二逻辑地址相对应的第二物理地址;以及
基于所述第二L2P表的所述部分标识所述存储器装置的所述第一部分内与所述第二请求指定的所述第二逻辑地址相对应的所述第二物理地址;以及
在所述存储器装置的所述第一部分内的所述第二物理地址处执行所述第二主机起始的操作。
20.一种计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时将所述处理装置配置成执行包括以下各项的操作:
接收指定与针对存储器装置的第一部分的主机起始的操作相关联的逻辑地址的请求;
从易失性存储器组件存取逻辑到物理L2P表,所述L2P表包括所述存储器装置的第二部分中的逻辑地址与物理地址之间的映射;
确定所述L2P表中与所述逻辑地址相对应的条目指向读取高速缓存表中的条目;基于所述读取高速缓存表中的所述条目的条目编号计算对应于来自读取高速缓存器的多个区块当中的区块的区块地址,所述读取高速缓存器中的所述区块存储指定所述存储器装置的所述第一部分内与所述请求指定的所述逻辑地址相对应的物理地址的信息;
从所述易失性存储器组件存取所述读取高速缓存器的对应于所述区块地址的所述区块;
基于所述读取高速缓存器的对应于所述区块地址的所述区块标识与所述请求指定的所述逻辑地址相对应的物理地址,所述物理地址对应于所述存储器装置的所述第一部分中的物理位置;以及
在所述存储器装置的所述第一部分内的所述物理位置处执行所述主机起始的操作,所述物理位置对应于与所述请求指定的所述逻辑地址相对应的所述物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/203,017 | 2021-03-16 | ||
US17/203,017 US11734189B2 (en) | 2021-03-16 | 2021-03-16 | Caching of logical-to-physical mapping information in a memory sub-system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080458A true CN115080458A (zh) | 2022-09-20 |
Family
ID=83247224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210251626.4A Pending CN115080458A (zh) | 2021-03-16 | 2022-03-15 | 在存储器子系统中高速缓存逻辑到物理映射信息 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11734189B2 (zh) |
CN (1) | CN115080458A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734189B2 (en) | 2021-03-16 | 2023-08-22 | Micron Technology, Inc. | Caching of logical-to-physical mapping information in a memory sub-system |
US11755495B2 (en) | 2021-03-16 | 2023-09-12 | Micron Technology, Inc. | Storing a logical-to-physical mapping in NAND memory |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230260581A1 (en) * | 2022-02-15 | 2023-08-17 | Micron Technology, Inc. | Techniques for operating a vertical memory architecture |
US11874771B2 (en) * | 2022-05-16 | 2024-01-16 | Western Digital Technologies, Inc. | Multiple indirection sizes for logical-to-physical translation tables |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093099B2 (en) * | 2002-12-12 | 2006-08-15 | Alacritech, Inc. | Native lookup instruction for file-access processor searching a three-level lookup cache for variable-length keys |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
AU2010265954B2 (en) * | 2009-06-26 | 2016-01-28 | Hewlett Packard Enterprise Development Lp | File system |
US9104327B2 (en) * | 2011-05-17 | 2015-08-11 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
KR101419004B1 (ko) * | 2012-05-03 | 2014-07-11 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
US20150379682A1 (en) * | 2014-06-27 | 2015-12-31 | Samsung Electronics Co., Ltd. | Vertex attribute data compression with random access using hardware |
US20170024326A1 (en) | 2015-07-22 | 2017-01-26 | CNEX-Labs, Inc. | Method and Apparatus for Caching Flash Translation Layer (FTL) Table |
US9952788B2 (en) * | 2015-09-29 | 2018-04-24 | Cnex Labs, Inc. | Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme |
US10915475B2 (en) * | 2017-10-12 | 2021-02-09 | Western Digital Technologies, Inc. | Methods and apparatus for variable size logical page management based on hot and cold data |
US10496334B2 (en) * | 2018-05-04 | 2019-12-03 | Western Digital Technologies, Inc. | Solid state drive using two-level indirection architecture |
US10817217B2 (en) * | 2018-06-28 | 2020-10-27 | Seagate Technology Llc | Data storage system with improved time-to-ready |
KR20200011831A (ko) * | 2018-07-25 | 2020-02-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10783031B2 (en) * | 2018-08-20 | 2020-09-22 | Arm Limited | Identifying read-set information based on an encoding of replaceable-information values |
CN110471861B (zh) * | 2019-07-10 | 2022-02-11 | 华为技术有限公司 | 一种闪存设备中的数据存储方法及闪存设备 |
US11681617B2 (en) * | 2021-03-12 | 2023-06-20 | Arm Limited | Cache victim selection based on completer determined cost in a data processing system |
US11755495B2 (en) | 2021-03-16 | 2023-09-12 | Micron Technology, Inc. | Storing a logical-to-physical mapping in NAND memory |
US11734189B2 (en) | 2021-03-16 | 2023-08-22 | Micron Technology, Inc. | Caching of logical-to-physical mapping information in a memory sub-system |
-
2021
- 2021-03-16 US US17/203,017 patent/US11734189B2/en active Active
-
2022
- 2022-03-15 CN CN202210251626.4A patent/CN115080458A/zh active Pending
-
2023
- 2023-07-25 US US18/225,958 patent/US20230367719A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734189B2 (en) | 2021-03-16 | 2023-08-22 | Micron Technology, Inc. | Caching of logical-to-physical mapping information in a memory sub-system |
US11755495B2 (en) | 2021-03-16 | 2023-09-12 | Micron Technology, Inc. | Storing a logical-to-physical mapping in NAND memory |
Also Published As
Publication number | Publication date |
---|---|
US11734189B2 (en) | 2023-08-22 |
US20230367719A1 (en) | 2023-11-16 |
US20220300432A1 (en) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
US11640262B2 (en) | Implementing variable number of bits per cell on storage devices | |
US11755495B2 (en) | Storing a logical-to-physical mapping in NAND memory | |
US11734189B2 (en) | Caching of logical-to-physical mapping information in a memory sub-system | |
US20230176965A1 (en) | Media management based on data access metrics | |
US11422945B2 (en) | Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes | |
CN113010449A (zh) | 存储器子系统中命令的有效处理 | |
US11836076B2 (en) | Implementing mapping data structures to minimize sequentially written data accesses | |
CN114077552A (zh) | 用于主机常驻转译层的存储器存取跟踪 | |
US20240160349A1 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
WO2022225603A1 (en) | Memory instruction for memory tiers | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240028239A1 (en) | Zone block staging component for a memory sub-system with zoned namespace | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
CN115705159A (zh) | 存储器子系统中双字的智能交换和有效编码 | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
US11868642B2 (en) | Managing trim commands in a memory sub-system | |
US11734071B2 (en) | Memory sub-system tier allocation | |
US20240345947A1 (en) | Virtual indexing in a memory device |
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 |