在与非存储器中存储逻辑到物理映射的制作方法

文档序号:31716241发布日期:2022-10-04 21:55阅读:43来源:国知局
1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及在nand存储器装置中针对存储器子系统存储并使用逻辑到物理(l2p)映射。
背景技术
::2.存储器子系统可包含存储数据的一或多个存储器装置。存储器组件可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。技术实现要素:3.根据本技术的一个方面,提供了一种系统。系统包括:存储器装置,其包括第一部分和第二部分,所述第二部分存储第一逻辑到物理(l2p)表,所述第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;以及处理装置,其耦合到存储器装置,处理装置配置成执行包括以下各项的操作:接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处执行主机发起的操作。4.根据本技术的另一方面,提供了一种方法。方法包括:在处理装置处接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求,存储器装置包括第一部分和第二部分,所述第二部分存储第一逻辑到物理(l2p)表,所述第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;从存储器装置的第二部分内的物理位置存取第一l2p表的部分;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处通过处理装置执行主机发起的操作。5.根据本技术的又一方面,提供了一种计算机可读存储媒体。计算机可读存储媒体包括指令,所述指令在由处理装置执行时将处理装置配置成执行包括以下各项的操作:接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求,存储器装置包括第一部分和第二部分,所述第二部分存储第一逻辑到物理(l2p)表,所述第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;从存储器装置的第二部分内的物理位置存取第一l2p表的部分;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处执行主机发起的操作。附图说明6.根据下文给出的详细描述且根据本公开的各种实施例的附图将更加充分地理解本公开。7.图1为说明根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。8.图2a和2b为根据本公开的一些实施例示出用于存储器子系统的实例架构的框图。9.图3为根据本公开的一些实施例示出由存储器子系统实施的实例高速缓存算法的框图。10.图4至6为根据本公开的一些实施例示出用于利用存储在nand存储器装置的专用部分中的逻辑到物理(l2p)表的实例方法的流程图。11.图7为本公开的实施例可在其中操作的实例计算机系统的框图。具体实施方式12.本公开的各方面涉及在nand存储器装置中针对存储器子系统使用并存储逻辑到物理(l2p)映射。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可以利用包含一或多个组件的存储器子系统,所述一或多个组件例如存储数据的存储器装置。主机系统可以提供待存储于存储器子系统处的数据,并且可以请求从存储器子系统检索数据。13.可由存储器子系统执行数据操作。数据操作可以是主机发起的操作。例如,主机系统可以在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可以将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。14.存储器装置可以是非易失性存储器装置。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。例如nand存储器装置等一些存储器装置包含用以存储数据的存储器单元(例如,快闪单元)阵列。每一单元包含晶体管,且在每一单元内,数据被存储为晶体管的阈值电压。更确切地说,晶体管的阈值电压的范围可被划分成多个区,其中每一区对应于解码成数据值的电荷电平。这些装置中的存储器单元可被分组为可指代用以存储数据的存储器装置的逻辑单位的页。一种类型的存储器单元,例如单层级单元(slc)每单元可存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)每单元可存储多个位。存储器装置可包含slc、mlc、tlc、qlc或其任何组合的一或多个阵列。15.在存储器子系统的上下文内,物理地址识别存储器装置中的数据的物理位置。逻辑地址是主机系统用作存取对应于存储器装置中的物理位置的数据单位的参考的虚拟地址。数据单位可对应于块、页或子页。存储器子系统维持逻辑到物理(l2p)表(还被称作“数据映射”)以处理从主机系统接收到的存取请求。l2p表包含物理地址与逻辑地址之间的映射。传统上,l2p表存储于存储器子系统的动态随机存取存储器(dram)组件中。16.存储器装置内的nand单元密度以一较高速率增大,这增加了装置中的物理存储器位置的数目。随着物理存储器位置的数目增加,l2p表的大小增大,这需要增加的dram大小要求能够存储较大l2p表。然而,尽管nand单元密度稳定增大,但dram密度在某种程度上保持相对稳定,这是因为除增加dram与存储器子系统控制器介接的复杂性之外,较大数目个dram组件还可使硬件布局不可行。17.解决l2p表的大小增大的常规方法包含增大映射间接大小单位(例如,从4kb增大到8kb-16kb)以减少用于存储l2p表的dram要求。然而,此方法常常导致增加的写入放大。另一常规方法包含使用分页以从快闪存储器到dram对l2p表的区段分页。然而,由于对l2p表的更新,此方法造成刷新率过高。此方法还增加由快闪转换层(ftl)元数据利用的快闪存储器的量,这可导致与其它方法相比损害了性能和耐久性。18.本公开的各方面通过利用nand存储器装置存储l2p表来解决存储器子系统中的大的l2p表大小的问题。nand存储器装置的部分专用于存储初级l2p数据,而其余部分用于存储用户数据。举例来说,l2p表可存储于存储器装置的slc部分中,同时用户数据存储于qlc部分中。除使用常规的间接单位大小(例如,4kb)的初级快闪转换层之外,存储器子系统进一步包含具有减小的间接单位大小(例如,256字节而非4kb)的次级细粒度ftl,其与初级ftl一起工作以处理主机发起的操作。在执行查找时,次级ftl使用次级l2p表(例如,存储于dram中)以识别具有专用部分的物理位置,所述专用部分中存储有初级l2p表的相关部分。次级ftl从专用部分(例如,slc部分)存取初级l2p表的相关部分以识别对应于主机命令所针对的逻辑地址的物理地址。初级ftl继而在所识别的物理地址处执行主机发起的操作。19.在一些实施例中,存储器子系统可包含用于初级l2p表以用于受限地点工作负载的读取高速缓存器(例如,在dram中)。在多个信息块中管理读取高速缓存器,且每一信息块存储初级l2p表的一部分。每一信息块的大小对应于次级ftl使用的间接单位大小。在高速缓存未中的情况下,次级ftl存取存储初级l2p表的一部分的专用部分内的物理位置,且将初级l2p表的读取部分高速缓存在读取高速缓存器中。在高速缓存命中的情况下,次级ftl可通过从读取高速缓存器的信息块存取相关部分来快速识别对应于主机命令所针对的逻辑地址的物理地址。以此处所描述的方式使用读取高速缓存器减少高速缓存未中比例。20.将初级l2p数据存储在nand存储器装置中而非dram中是有益的,因为这允许dram的占用面积减少。在nand密度继续增大时,解决越来越大的l2p表的问题的此方法也可扩展。另外,将初级l2p数据存储在nand存储器中使用较少ftl元数据预算,同时与常规方法相比还显著减少了启动之后的预备时间。21.图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。22.存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡,以及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm),和各种类型的非易失性双列直插式存储器模块(nvdimm)。23.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。24.计算系统100可包含耦合到一或多个存储器子系统110的多个主机系统。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的实例主机系统120。如本文所使用,“耦合到”或“与耦合”一般是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,无中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等。25.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统120使用例如存储器子系统110以将数据写入到存储器子系统110且从存储器子系统110读取数据。26.主机系统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可经由同一通信连接、多个独立通信连接和/或通信连接的组合来存取多个存储器子系统。27.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。28.非易失性存储器装置(例如,存储器装置130)的一些实例包含nand型快闪存储器和就地写入存储器,例如三维(3d)交叉点存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2dnand)和3dnand。29.每一存储器装置130可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc)每单元可存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)每单元可存储多个位。在一些实施例中,每一存储器装置130可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的slc部分,以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为页,所述页可指用以存储数据的存储器装置的逻辑单位。例如,nand存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。对于一些类型的存储器(例如,nand),页可被分组以形成块。另外,存储器装置内的字线可被组织成多个字线组,其中的每一者包含一或多个字线,但每一字线组包含的字线比块中包含的字线少。30.虽然描述了例如nand型快闪存储器(例如,2dnand、3dnand)和非易失性存储器单元的3d交叉点阵列的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器和电可擦除可编程只读存储器(eeprom)。31.存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处执行的读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。32.存储器子系统控制器115可包含配置成执行存储在本地存储器119中的指令的处理器117(处理装置)。在所示出的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作,包含处置存储器子系统110与主机系统120之间的通信的各种过程、操作、逻辑流程和例程。33.在一些实施例中,本地存储器119可包含存储存储器指针、所获取数据等存储器寄存器。本地存储器119还可包含用于存储微码的rom。虽然图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。34.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ecc操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,且将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。35.在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。36.存储器子系统110还包含初级快闪转换层(ftl)113和次级ftl114。初级ftl113执行查找和垃圾收集。初级ftl113使用用于查找的第一间接单位大小(例如,4kb)。次级ftl114提供用于初级ftl113的虚拟持久性存储器以存储初级l2p表。初级l2p表存储于存储器装置130的第一部分(例如,存储器装置130的slc部分)中。初级l2p表包含逻辑地址与存储器装置130的第二部分(例如,qlc部分)中的物理地址之间的映射。次级ftl114使用初级l2p表处理来自初级ftl113的针对存储器装置130的第二部分(例如,一或多个qlc块)的读取和写入命令。次级ftl114使用小于初级ftl113所使用的第一间接单位大小的第二间接单位大小(例如,256字节)。37.当针对与存储器装置130的第二部分对应的逻辑地址的读取或写入命令由初级ftl113接收到时,初级ftl113将查找请求发送到次级ftl114。响应于请求,次级ftl114从存储器子系统110的易失性存储器组件(例如,dram或全息随机存取存储器(hram))存取次级l2p表。次级l2p表包含逻辑地址与存储有初级l2p表的存储器装置130的第一部分中的物理地址之间的映射。因此,次级ftl114使用次级l2p表识别存储器装置130的第一部分内与初级l2p表的部分对应的物理位置,所述部分包含逻辑地址到存储器装置130的第二部分中的物理地址的映射。次级ftl114存取初级l2p表的部分以识别存储器装置130的第二部分中的物理地址,所述物理地址对应于基于命令将读取或写入数据的位置。次级ftl114将物理地址作为输出提供到初级ftl113,且初级ftl113转而基于命令在存储器装置130的第二部分中与由次级ftl114识别的物理地址对应的物理位置处执行操作(例如,写入、读取或擦除数据)。38.在一些实施例中,存储器子系统控制器115包含初级ftl113和次级ftl114的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),所述处理器配置成执行存储于本地存储器119中的指令以用于执行本文所描述的操作。在一些实施例中,初级ftl113和次级ftl114的至少一部分是主机系统120、应用程序或操作系统的一部分。39.图2a和2b为根据本公开的一些实施例示出用于存储器子系统110的实例架构的框图。在图2a和2b中示出的实例中,存储器装置130是包含多个存储器块的nand存储器装置。40.参考图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和plcnand中,页为共享同一字线且为编程的最小单位的一组连接单元。41.存储器子系统110进一步包含主机接口204(例如,nvme)以用于主机系统120将存取请求(例如,写入命令、读取命令)发送到存储器装置130,以便将数据存储在存储器装置130上或从存储器装置130读取数据。42.后端信道206促进nand块(qlc块200和slc块202)与初级ftl113以及次级ftl114之间的通信。如上文所提及,次级ftl114提供用于初级ftl113的虚拟持久性存储器以存储初级l2p表208。由slc块202实施虚拟持久性存储器。也就是说,初级l2p表208存储于slc块202中。初级l2p表208包含逻辑地址与qlc块200中的物理地址之间的映射。次级ftl114使用初级l2p表208处理来自初级mtf113的针对一或多个qlc块200的读取和写入命令。次级ftl114使用小于初级ftl113所使用的第一间接单位大小的第二间接单位大小(例如,256字节)。43.当从初级ftl113接收到指定与qlc块200对应的逻辑地址的查找请求时,次级ftl114存取次级l2p表212以识别slc块202内的物理位置,在所述物理位置处存储初级l2p表208的对应部分。次级l2p表212可存储于存储器子系统110的易失性存储器组件210中,例如dram或全息随机存取存储器(hram)。易失性存储器组件210可连同qlc块200和slc块202形成存储器装置130的部分,或易失性存储器组件210可对应于或形成另一存储器装置(例如,存储器装置140)的部分。使用次级l2p表212,次级ftl114识别对应于slc块202内的物理位置的物理地址,且存取初级l2p表208的部分以识别qlc块200中与基于命令将读取或写入数据的物理位置对应的物理地址。次级ftl114将qlc块200中的物理地址提供到初级ftl113,所述初级ftl转而在qlc块200内与所识别物理地址对应的物理位置处执行主机发起的操作。44.如图2b中所示,根据一些实施例,次级ftl114可采用读取高速缓存器214来辅助执行查找。可在易失性存储器组件210中实施读取高速缓存器214。读取高速缓存表216还可连同次级l2p表212一起存储在易失性存储器组件210中。以多个信息块的形式管理读取高速缓存器214,且高速缓存表216中的每一条目对应于信息块。每一信息块的大小对应于次级l2p表212利用的间接单位大小。如上所述,在此实例中,次级l2p表212的间接单位大小为256字节,且因此,高速缓存表216中的每一条目对应于读取高速缓存器214的256字节信息块。读取高速缓存器214的每一信息块包含初级l2p表208的部分。45.高速缓存表216中的每一条目在逻辑上链接到slc块202中的存储器的对应信息块。也就是说,高速缓存表216中的每一条目数可用于计算slc块202中的对应信息块的物理地址。下文论述关于读取高速缓存表216的使用的其它细节。46.图3为根据本公开的一些实施例示出由存储器子系统110实施的实例高速缓存算法的框图。更确切地说,图3示出在多个情形中的存储器子系统的行为-在302处的高速缓存未中、在304处的高速缓存命中和在306处的未清除高速缓存命中。47.参考302,当对应于主机命令中的所请求逻辑地址的条目未包含于读取高速缓存表216中时,发生高速缓存未中。在高速缓存未中的情况下,次级ftl114直接使用次级l2p表212识别slc块202中的物理位置,在所述物理位置处存储初级l2p表208的一部分。初级l2p表208的部分高速缓存在读取高速缓存器214中,且新条目创建在读取高速缓存表216中。可从初级l2p表208的部分识别对应于主机命令中的逻辑地址的qlc块200中的物理地址。48.如果在高速缓存未中发生时读取高速缓存器214是满的,那么次级ftl114随机选择对应于高速缓存未中的新条目且用其取代读取高速缓存表216中的条目。读取高速缓存表216从开始分配到结束,因为读取高速缓存器214在通电之后填满。读取高速缓存表216中的新条目在逻辑上链接到初级l2p表208的最新高速缓存部分,原因在于可根据读取高速缓存表216中的条目直接计算对应于读取高速缓存器214中的最新高速缓存部分的地址,如下文将论述。49.参考304,当对应于主机命令中的所请求逻辑地址的条目包含于读取高速缓存表216中时,发生高速缓存命中。在高速缓存命中的情况下,次级l2p表212指向读取高速缓存表216中的条目。次级ftl114基于由次级l2p表212指向的读取高速缓存表216中的条目的条目数计算对应于读取高速缓存器214的信息块的地址。读取高速缓存器214的信息块包含初级l2p表208的部分,可从所述部分识别qlc块200内的物理位置。在实例中,读取高速缓存器214中的256字节信息块的地址可如下计算:信息块地址=cachetableentry#*chunksize+baseaddress,其中“cachetableentry#”为读取高速缓存表216中的条目数,“chunksize”为读取高速缓存器214中的信息块的单位大小,且“baseaddress”对应于由主机命令指定的逻辑地址。次级ftl114存取读取高速缓存器214的信息块以确定qlc块200中对应于主机命令中指定的逻辑地址的物理地址。50.与传统方法相比,以此方式维持读取高速缓存器214减少计算资源利用(例如,存储器和cpu处理能力)。举例来说,因为可根据读取高速缓存表216条目直接计算读取高速缓存地址,所以不需要维持读取高速缓存表216中最近使用的(lru)列表或自由条目的列表,其中的每一者将需要额外存储器资源。此外,由于高速缓存表216条目与实际读取高速缓存器214资源之间存在固定映射,因此消除了维持用于每一条目的前向和后向指针的需要,由此减少存储读取高速缓存表216所需的存储器资源量。51.参考306,在未清除高速缓存命中的情况下,次级l2p表212指向未清除高速缓存表308中的条目。未清除高速缓存表308中的条目包含qlc块200中与读取高速缓存器214中的未清除信息块相关联的物理地址。条目在逻辑上链接到缓冲器310中的条目,其中累积用于次级l2p表212的对应部分的经更新数据。一旦缓冲器满了,就将来自缓冲器310的数据编程到slc块202。52.图4至6为根据本公开的一些实施例示出用于通过将目标电荷电平的指示符传送到存储器装置而将数据编程到存储器装置的实例方法400的流程图。方法400可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理装置执行。在一些实施例中,处理装置包含图1的初级ftl113和次级ftl114。根据这些实施例,方法400的任何一或多个操作可由初级ftl113或次级ftl114执行。尽管以特定序列或次序展示过程,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅作为实例理解,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都利用所有过程。其它过程流程是可能的。53.在操作405处,处理装置接收指定与针对存储器装置(例如,存储器装置130)的主机发起的数据操作(例如,读取、写入或擦除)相关联的逻辑地址的请求。请求可包含从主机系统(例如,主机系统120)接收到的存取请求(例如,写入命令、读取命令)或基于所述存取请求。逻辑地址由来自主机系统的存取请求指定。54.在一些实施例中,存储器装置为包含至少slc部分和qlc部分的nand存储器装置。也就是说,存储器装置包含slc块和qlc块。在这些实施例中,逻辑地址可对应于存储器装置的qlc部分内的物理位置。55.处理装置识别存储器装置的第一部分内与包含于请求中的逻辑地址对应的物理位置(操作410)。物理位置对应于由处理装置根据初级l2p表确定的物理地址。在存储器装置为nand存储器装置的实施例中,处理装置识别存储器装置的qlc部分内与根据逻辑地址确定的物理地址对应的物理位置。56.在一些实施例中,处理装置的初级ftl接收与主机发起的数据操作相关联的请求,且次级ftl负责识别存储器装置的第一部分中的物理地址。根据这些实施例,初级ftl可产生并提供查找请求到包含逻辑地址的次级ftl,且次级ftl可响应于查找请求而将物理地址提供到初级ftl。下文参考图5论述关于由次级ftl执行的操作的其它细节。57.在操作415处,处理装置在存储器装置的第一部分中的物理位置处执行主机发起的数据操作。举例来说,处理装置可从物理位置读取数据或将数据写入到物理位置。58.如图5所示,在一些实施例中,方法400可包含操作505、510、515、520和525。根据这些实施例,可执行操作505、510、515、520和525作为操作410的部分,其中处理装置识别对应于请求中的逻辑地址的物理位置。在一些实施例中,响应于接收到由初级ftl基于由初级ftl从主机系统接收到的存取请求产生的查找请求,通过处理装置的次级ftl执行操作505、510、515、520和525。59.在操作505处,处理装置存取存储在易失性存储器组件(例如,易失性存储器组件210)中的次级l2p表(例如,次级l2p表212)。次级l2p表包含逻辑地址与专用于存储初级l2p表(例如,初级l2p表208)的存储器装置的第二部分内的物理地址之间的映射。初级l2p表包含逻辑地址与存储器装置的主机发起的操作所针对的第一部分(例如,存储器装置的存储用户数据的部分)内的物理地址之间的映射。初级l2p表使用第一间接大小(例如,4kb),而次级l2p表使用小于第一间接大小的第二间接大小(例如,256字节)。60.在存储器装置为具有slc部分和qlc部分的nand存储器装置的实施例中,次级l2p表包含逻辑地址与存储器装置的slc部分内的物理地址之间的映射,所述存储器装置中存储初级l2p表。根据这些实施例,初级l2p表包含逻辑地址与存储器装置的qlc部分内的物理地址之间的映射。61.处理装置识别存储器装置的第二部分内对应于与请求中的逻辑地址相关联的初级l2p表的部分的物理位置(操作510)。也就是说,初级l2p表的部分指定存储器装置的第一部分内与请求中的逻辑地址对应的物理地址。在一些实施例中,处理装置基于由次级l2p表指定的物理地址确定存储器装置的第二部分内的物理位置。在一些实施例中,处理装置基于从读取高速缓存器读取的数据确定存储器装置的第二部分内的物理位置。62.在前述操作的实例中,处理装置识别存储器装置的slc部分内与初级l2p表的部分对应的物理位置,所述初级l2p表中提供逻辑地址与存储器装置的qlc部分中的物理地址之间的映射。在此实例中,处理装置基于由次级l2p表指定的物理地址识别slc部分内的物理位置。63.在操作515处,处理装置从存储器装置的第二部分中的物理位置存取初级l2p表的部分。在操作520处,处理装置基于从存储器装置的第二部分中的物理位置存取的初级l2p表的部分识别存储器装置的第一部分中与请求指定的逻辑地址对应的物理地址。初级l2p表的所存取部分包含逻辑地址到存储器装置的第一部分中的物理地址的映射。在前述操作的实例中,处理装置使用从存储器装置的slc部分存取的初级l2p表的部分识别存储器装置的qlc部分中的物理地址。64.在操作525处,处理装置提供物理地址作为输出。在实例中,处理装置的次级ftl将物理地址作为输出提供到初级ftl以在存储器装置中的物理位置处执行主机发起的操作(写入、读取或擦除)(操作415)。65.如图6中所示,在一些实施例中,方法400可包含操作605、610、615、620、625、630、635、640、645和650。根据一些实施例,可执行操作605作为操作410的部分,其中处理装置识别对应于请求指定的逻辑地址的物理地址。66.在操作605处,处理装置存取存储在易失性存储器组件(例如,易失性存储器组件210)中的次级l2p表(例如,次级l2p表212)。次级l2p表包含逻辑地址与专用于存储初级l2p表(例如,初级l2p表208)的存储器装置的第二部分内的物理地址之间的映射。初级l2p表包含逻辑地址与存储器装置的主机发起的操作所针对的第一部分(例如,存储器装置的存储用户数据的部分)内的物理地址之间的映射。67.在操作610处,处理装置确定次级l2p表中的对应条目是否指向读取高速缓存表中与读取高速缓存器相关联的条目。可将读取高速缓存器和读取高速缓存表连同次级l2p表一起维持在易失性存储器组件(例如,dram)中。68.根据这些实施例,如果处理装置确定次级l2p表中的条目并不指向已发生高速缓存未中的读取高速缓存表条目,且处理装置识别存储器装置的第二部分内对应于与请求中的逻辑地址相关联的初级l2p表的部分的物理位置(操作615)。也就是说,初级l2p表的部分指定存储器装置的第一部分内与请求中的逻辑地址对应的物理地址。处理装置基于由次级l2p表指定的物理地址确定存储器装置的第二部分内的物理位置。69.在操作620处,处理装置从存储器装置的第二部分中的物理位置存取初级l2p表的部分,且在操作625处,处理装置高速缓存初级l2p表的所存取部分。也就是说,处理装置将l2p表的部分添加到读取高速缓存器的信息块。初级l2p表的部分包含逻辑地址到存储器装置的第一部分中的物理地址的映射。70.在操作630处,处理装置将与添加到读取高速缓存器的信息块的l2p表的部分对应的新条目添加到读取高速缓存表。读取高速缓存表从开始分配到结束,因为高速缓存器在通电之后填满。如果读取高速缓存表满了,那么处理装置随机选择读取高速缓存表中的现有条目且用新条目代替其。71.返回到操作610,如果处理装置确定次级l2p表中的条目确实指向读取高速缓存表条目,那么发生高速缓存命中,且处理装置在操作640处存取读取高速缓存表条目。72.在操作645处,处理装置基于高速缓存表条目识别来自读取高速缓存器的多个信息块当中的读取高速缓存器的信息块。每一信息块的大小对应于次级l2p表使用的间接大小(例如,256字节)。为识别信息块,处理装置基于表条目的条目数计算信息块地址。作为实例,处理装置可通过将条目数乘以每一信息块的大小且将乘积添加到请求指定的逻辑地址来计算信息块地址。如上文所阐述,通过根据条目直接计算信息块地址,处理装置可消除对维持最近使用的(lru)策略或自由条目池的需要。73.在操作650处,处理装置存取所识别的高速缓存信息块。所识别的高速缓存信息块包含初级l2p表的指定用于请求指定的逻辑地址的物理地址映射(存储器装置的第一部分内)的部分。74.在操作635处,处理装置基于从存储器装置的第二部分中的物理位置存取的初级l2p表的部分(在操作620处)或基于从读取高速缓存器的信息块存取的初级l2p表的部分(在操作650处)识别存储器装置的第一部分中与请求指定的逻辑地址对应的物理地址。在实例中,处理装置识别存储器装置的qlc部分中与请求中指定的逻辑地址对应的物理地址。在高速缓存未中的情况下,处理装置识别来自从存储器装置的slc部分存取的初级l2p表的物理地址。在高速缓存命中的情况下,处理装置从在易失性存储器(例如,dram或hram)中实施的读取高速缓存器的信息块识别物理地址。75.标的物的具体实施方式可包含如下文借助于实例所说明的单独或组合的一或多个特征。76.实例1为一种系统,其包含:存储器装置,其包括第一部分和第二部分,第二部分存储第一逻辑到物理(l2p)表,第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;以及处理装置,其耦合到存储器装置,处理装置配置成执行包括以下各项的操作:接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处执行主机发起的操作。77.实例2包含实例1的系统,其中:存储器装置为nand存储器装置;第一部分包括多个四层级单元(qlc);且第二部分包括多个单层级单元(slc)。78.实例3包含实例1或2中任何一或多项的系统,其中:第一l2p表使用第一间接单位大小;且第二l2p表使用第二间接单位大小。79.实例4包含实例1至3中任何一或多项的系统,其中第二间接单位大小小于第一间接单位大小。80.实例5包含实例1至4中任何一或多项的系统,其中操作进一步包括:从存储器装置的第二部分内的物理位置存取第一l2p表的部分。81.实例6包含实例1至5中任何一或多项的系统,其中操作进一步包括确定第二l2p表中的条目是否指向读取高速缓存表,其中基于确定第二l2p表中的条目并不指向读取高速缓存表而从存储器装置的第二部分内的物理位置存取第一l2p表的部分。82.实例7包含实例1至6中任何一或多项的系统,其进一步包括读取高速缓存器,读取高速缓存器包括用以高速缓存第一l2p表的部分的多个信息块,其中操作进一步包括基于确定第二l2p表中的条目并不指向读取高速缓存表而将第一l2p表的所存取部分添加到读取高速缓存器。83.实例8包含实例1至7中任何一或多项的系统,其中操作进一步包括将与添加到读取高速缓存器的第一l2p表的所存取部分对应的条目添加到读取高速缓存表。84.实例9包含实例1至8中任何一或多项的系统,其中主机发起的操作包括以下各者中的一者:读取操作、写入操作或擦除操作。85.实例10包含实例1至9中任何一或多项的系统,其中易失性存储器组件包括以下各者中的一者:动态随机存取存储器(dram)或全息随机存取存储器(hram)。86.实例11为一种方法,其包括:在处理装置处接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求,存储器装置包括第一部分和第二部分,第二部分存储第一逻辑到物理(l2p)表,第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;从存储器装置的第二部分内的物理位置存取第一l2p表的部分;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处通过处理装置执行主机发起的操作。87.实例12包含实例11所述的方法,其中:存储器装置为nand存储器装置;第一部分包括多个四层级单元(qlc);且第二部分包括多个单层级单元(slc)。88.实例13包含实例11至12中任何一或多项的方法,其中:第一l2p表使用第一间接单位大小;且第二l2p表使用第二间接单位大小。89.实例14包含实例11至13中任何一或多项的方法,其中第二间接单位大小小于第一间接单位大小。90.实例15包含实例11至14中任何一或多项的方法,其进一步包括确定第二l2p表中的条目是否指向读取高速缓存表,其中基于确定第二l2p表中的条目并不指向读取高速缓存表而从存储器装置的第二部分内的物理位置存取第一l2p表的部分。91.实例16包含实例11至15中任何一或多项的方法,其进一步包括读取高速缓存器,所述读取高速缓存器包括用以高速缓存第一l2p表的部分的多个信息块,其中操作进一步包括基于确定第二l2p表中的条目并不指向读取高速缓存表而将第一l2p表的所存取部分添加到读取高速缓存器。92.实例17包含实例11至16中任何一或多项的方法,其中操作进一步包括将与添加到读取高速缓存器的第一l2p表的所存取部分对应的条目添加到读取高速缓存表。93.实例18包含实例11至17中任何一或多项的方法,其中主机发起的操作包括以下各者中的一者:读取操作、写入操作或擦除操作。94.实例19包含实例11至18中任何一或多项的方法,其中易失性存储器组件包括以下各者中的一者:动态随机存取存储器(dram)或全息随机存取存储器(hram)。95.实例20为一种包括指令的计算机可读存储媒体,所述指令在由处理装置执行时将处理装置配置成执行包括以下各项的操作:接收指定与针对存储器装置的第一部分的主机发起的操作相关联的逻辑地址的请求,存储器装置包括第一部分和第二部分,第二部分存储第一逻辑到物理(l2p)表,第一逻辑到物理表包括逻辑地址与存储器装置的第一部分中的物理地址之间的映射;从易失性存储器组件存取包括逻辑地址与存储器装置的第二部分中的物理地址之间的映射的第二l2p表;基于第二l2p表识别存储器装置的第二部分内的物理位置,存储器装置的第二部分内的物理位置对应于第一l2p表的部分,所述部分指定存储器装置的第一部分内与逻辑地址对应的物理地址;从存储器装置的第二部分内的物理位置存取第一l2p表的部分;基于第一l2p表的部分识别存储器装置的第一部分内与逻辑地址对应的物理地址;以及在存储器装置的第一部分内与请求指定的逻辑地址对应的物理地址处执行主机发起的操作。96.图7示出呈计算机系统700的形式的实例机器,在其内可执行指令集以使机器执行本文所论述的方法中的任何一或多个。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,运行操作系统以执行对应于图1的初级ftl113或次级ftl114的操作)。在替代性实施例中,机器可连接(例如,联网)到局域网(lan)、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。97.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由机器采取的动作的指令集的任何机器。此外,虽然示出了单个机器,但还应认为术语“机器”包含单独地或共同地执行(一或多个)指令集以执行本文所论述的方法中的任何一或多种的机器的任何集合。98.实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,rom、快闪存储器、例如sdram或rdram的dram等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统718。99.处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置702可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如asic、fpga、数字信号处理器(dsp)、网络处理器等。处理装置702配置成执行指令726以用于执行本文所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以在网络720上通信。100.数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文所描述的方法或功能中的任何一或多个的软件。指令726还可在由计算机系统700执行其期间完全或至少部分地驻存于主存储器704内和/或处理装置702内,所述主存储器704和所述处理装置702还构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。101.在一个实施例中,指令726包含用以实施对应于ftl(例如,图1的初级ftl113或次级ftl114)的功能的指令。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储由机器执行的指令集或对其进行编码且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。102.已就对计算机存储器内的数据位的操作的算法和符号表示而言呈现了先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在本文中且一般被认为是产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的那些操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。主要出于常用的原因,已证明将这些信号称为位、值、元素、符号、字符、术语、编号或类似者有时是方便的。103.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控且变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。104.本公开还涉及一种用于执行本文中的操作的设备。此设备可出于预期目的而构建,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于各自耦合到计算机系统总线的计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、rom、ram、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体。105.本文中呈现的算法和显示本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可以证明构造更专用的设备来执行方法是方便的。将如下文描述中所阐述的那样呈现用于各种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开的实施例。应了解,可使用多种编程语言来实施如本文所描述的本公开的教示。106.本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于存储呈机器(例如,计算机)可读形式的信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如rom、ram、磁盘存储媒体、光学存储媒体、快闪存储器组件等。107.在前述说明书中,已参考本公开具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开实施例的更广范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1